История изменений
Исправление alysnix, (текущая версия) :
ребят, о чём вы вообще говорите, какие команды процессора? код на джаве выполняется в виртуальной машине и в ней всё можно сделать атомарно.
а jit-компилятора там уже нет? надо смотреть набор команд жава машины, и есть ли декларация атомарности инкремента, если он там вообще есть. естесно это атомарность на уровне потока исполнения жавамашины, а не реального проца.
но если например язык си или плюсы, то инкремент на 1 можно сделать атомарным на интеле, сгенерив команду lock inc mem. если адрсное выражение влезет в mem. и если разрабы кодогенератора этим озаботятся. например зная что переменная определена как volatile. что как бы указывает, что ее меняют из разных потоков.
ps. неохота смотреть команды явамашины, но для простого инкремента там вряд ли декларируеся атомарность, поскольку это траты времени, а атомарность нужна только если несколько потоков пытаются ее менять одновременно. а в других случаях не нужна.
Исходная версия alysnix, :
ребят, о чём вы вообще говорите, какие команды процессора? код на джаве выполняется в виртуальной машине и в ней всё можно сделать атомарно.
а jit-компилятора там уже нет? надо смотреть набор команд жава машины, и есть ли декларация атомарности инкремента, если он там вообще есть. естесно это атомарность на уровне потока исполнения жавамашины, а не реального проца.
но если например язык си или плюсы, то инкремент на 1 можно сделать атомарным на интеле, сгенерив команду lock inc mem. если адрсное выражение влезет в mem. и если разрабы кодогенератора этим озаботятся. например зная что переменная определена как volatile. что как бы указывает, что ее меняют из разных потоков.