Java has a whole class,
Thread, to create threads. It has semaphores or mutexes built in.
Many Java programmers never deal with threads themselves, things like
Servlet containers manage the threads for them.
I write code using threads all the time. They are useful for the kinds of programs that I write.
Folks ask interview questions about them for a number of reasons. One might be that since using Threads properly is an advanced technique, it allows the interviewer to separate novices from experts. But there is a big difference between using Java Threads properly, and using them at all. The interviewer may not know this difference herself.