Re[3]: Не делимые операции потоков
От: Аноним  
Дата: 15.06.06 13:50
Оценка:
Здравствуйте, aefimov, Вы писали:

A>Спасибо!

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

Я верю в спецификации . Ни в JLS, ни в JVMSpec нет ничего относительно переключения потоков и связанных с этим гарантий. Это сделано намерено, т.к. это дает большую свободу при реализации. Хочешь, переложи все на ОС, нет возможности, делай управление потоками самостоятельно.

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

Мое мнение:
— исполнение одного байткода (любого) нельзя считать атомарным.
— это следовало бы гарантировать, хотя всех последствий я оценить не могу.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.