Неоспоримое преимущество Java перед всеми остальными - JMM (Java/JVM Memory Model),
которая позволяет относительнопросто верифицировать многопоточные программы,
быть уверенным, что не произойдёт гонки по данным, живых или мёртвых блокировок.
Данное соглашение гарантирует относительную однозначность состояния JVM в контрольных точках программы.
Вместе с атомарными операциями типа CAS, JMM делает программу на Java более надёжной (верифицируемой), чем программа на C++
Только в стандарте C++11 стали задумываться над аналогом JMM для C