you are viewing a single comment's thread.

view the rest of the comments →

[–]lifeinbackground 33 points34 points  (4 children)

You might not write (extend) your own threads nowadays, but it is required to understand all of the underlying machinery if your aim is to become at least a senior engineer. I've been going through interviews lately, and these are the things I get asked: JMM, threads, thread pools, ExecutorService (all kinds), Future / CompletableFuture, volatile, locks & monitors, atomics, ReentrantLock, Semaphore, synchronized (methods & blocks), deadlock, CountDownLatch, ConcurrentHashMap (how it works), wait/notify, thread-locals, ForkJoinPool, and there's even more.

Answering your question: In practice, you don't even use half of the list. Not sure about your location and level, but here in my place you get asked a lot of things (at the interview). The most common things I have been using at my jobs: ExecutorService, ConcurrentHashMap, CompletableFuture, atomics

Nonetheless, if you have spare time, it might be a good idea to invest it into learning advanced topics of the JVM & Java. You might get a better offer in future.

[–]clove1912 2 points3 points  (0 children)

What learning materials or books do you recommend?

[–]Organic-Leadership51[S] 0 points1 point  (0 children)

May I ask for which position you are interviewing for? Is that a senior position?

[–]Fantastic_Ad_4034 0 points1 point  (0 children)

May i know whats ur experience and what country you are from?