> Practically all server applications require some sort of synchronization between multiple threads. It could be just me but I think the author should've mentioned alternative concurrent programming models available for JVM such as Akka.
Even lots of low latency standard Java is tending towards single threaded non blocking models without synchronisation. The costs of synchronised blocks is high on the JVM. They defer to the operating system for thread scheduling, they enforce a memory barrier meaning all data is flushed out to RAM rather than CPU caches, and multithreaded code dirties CPU caches, reducing performance. More server side code should be…
That said, I completely agree. Many times making a single threaded system faster will improve performance vs making it parallel.