Для создания общей глобальной переменной, которую будут использовать несколько потоков используется слово volatile
.
Создадим два потока. Первый будет добавлять 1 к глобальной переменной и как только он добавил 1 к глобальной переменной, во втором потоке будет происходить вывод на консоль нового значения глобальной переменной. Этот процесс будет продолжаться пока i не станет 8.
Пример программы:
Вывод:

Как уже было сказано, если бы i была не volatile, то мы бы не работали непосредственно с переменной i, которая в main, а в каждом потоке бы создавалась копия переменной i и каждый поток работал бы со своей копией i.
Table of Contents
Метод join в Java
Узнайте, как метод join() в Java приостанавливает текущий поток до завершения другого. Примеры кода и объяснение работы с потоками для эффективной синхронизации.
Time to read: 11
Синхронизация в Java с помощью Synchronized
Изучите synchronized в Java: как организовать поочередный доступ потоков к общему ресурсу. Пример кода с пояснением работы синхронизации.
Time to read: 13
Synchronized static в Java
Разница между synchronized и synchronized static в Java. Как блокировка на уровне класса влияет на все объекты. Практические примеры и выводы.
Time to read: 15