Здравствуйте, aefimov, Вы писали:
A>Спасибо!
A>Всетаки атомарность определяется на уровне инструкций байт кода, или же это вообще отдельные вещи?
A>Т.е. чтоже конкретно можно считать атомарным?
Я верю в спецификации

. Ни в JLS, ни в JVMSpec нет ничего относительно переключения потоков и связанных с этим гарантий. Это сделано намерено, т.к. это дает большую свободу при реализации. Хочешь, переложи все на ОС, нет возможности, делай управление потоками самостоятельно.
Как я уже писал, JLS объявляет атомарными "странные" метаоперации. Они не входят в состав языка Java, но это и не байт коды. Застряли где-то посередине. Это как бы описание действий JVM, которые должны быть гарантированно атомарными. А для этого, очевидно, в каждой JVM подобные метаоперации должны быть выделимы логически. Цель создателей JLS ясна — наложить как можно меньше ограничений на реализацию и дать как можно больше гарантий времени выполнения. О результатах можно спорить.
Мое мнение:
— исполнение одного байткода (любого) нельзя считать атомарным.
— это следовало бы гарантировать, хотя всех последствий я оценить не могу.