What is multithreading in Java, and how do you handle thread safety in a high-concurrency environment?