Java предоставляет atomi c пакет , который поддерживает поточно-ориентированное программирование без единой переменной для отдельных переменных. Это особенно полезно, когда вы хотите использовать некоторый примитив в качестве глобальной переменной, но также заботитесь о безопасности потока.
Теперь, эти классы из этого пакета помогут вам, но он не предоставляет прямой AtomicDouble
класс, но он говорит вам, как этого добиться, см. Примечание к документации ниже:
Классы Atomi c не являются заменами общего назначения для java .lang.Integer и связанных классов. Они не определяют методы, такие как equals, hashCode и compareTo. (Поскольку ожидается, что переменные atomi c будут мутированными, они не подходят для ключей таблицы ha sh.) Кроме того, классы предоставляются только для тех типов, которые обычно используются в предполагаемых приложениях. Например, нет класса atomi c для представления байта. В тех редких случаях, когда вы хотели бы сделать это, вы можете использовать AtomicInteger для хранения байтовых значений и соответствующего приведения. Вы также можете удерживать плавающие с помощью преобразований Float.floatToRawIntBits (float) и Float.intBitsToFloat (int), а также удваивать с помощью преобразований Double.doubleToRawLongBits (double) и Double.longBitsToDouble (long).
Прочитайте
этот ответ .