Метод get
Метод get класса AtomicInteger возвращает
текущее значение атомарной целочисленной переменной.
Класс AtomicInteger находится в пакете
java.util.concurrent.atomic и обеспечивает
атомарные операции над значением типа int
без использования блокировок. Метод get
не принимает параметров и возвращает значение типа
int. Чтение значения происходит атомарно,
поэтому метод безопасно вызывать из нескольких потоков
одновременно.
Синтаксис
atomicInteger.get()
Пример
Давайте создадим объект AtomicInteger со
значением 12345 и получим его при помощи
метода get:
import java.util.concurrent.atomic.AtomicInteger;
public class Main
{
public static void main(String[] args)
{
AtomicInteger counter = new AtomicInteger(12345);
int res = counter.get();
System.out.println(res);
}
}
Результат выполнения кода:
12345
Пример
Давайте изменим значение атомарной переменной при
помощи метода set и затем прочитаем его
через get:
import java.util.concurrent.atomic.AtomicInteger;
public class Main
{
public static void main(String[] args)
{
AtomicInteger counter = new AtomicInteger(1);
counter.set(5);
int res = counter.get();
System.out.println(res);
}
}
Результат выполнения кода:
5
Пример
Давайте увеличим значение при помощи метода
incrementAndGet и прочитаем результат:
import java.util.concurrent.atomic.AtomicInteger;
public class Main
{
public static void main(String[] args)
{
AtomicInteger counter = new AtomicInteger(1);
counter.incrementAndGet();
counter.incrementAndGet();
int res = counter.get();
System.out.println(res);
}
}
Результат выполнения кода:
3
Пример
Давайте прочитаем значение атомарной переменной из
двух потоков. Метод get возвращает актуальное
значение на момент вызова:
import java.util.concurrent.atomic.AtomicInteger;
public class Main
{
public static void main(String[] args) throws InterruptedException
{
AtomicInteger counter = new AtomicInteger(100);
Thread writer = new Thread(() -> {
counter.set(200);
});
writer.start();
writer.join();
int res = counter.get();
System.out.println(res);
}
}
Результат выполнения кода:
200
Смотрите также
-
класс
AtomicInteger,
который обеспечивает атомарные операции над int -
метод
set,
который устанавливает новое значение -
метод
incrementAndGet,
который увеличивает значение на единицу -
метод
compareAndSet,
который атомарно сравнивает и устанавливает значение