Синхронизация потоков без использования объектов синхронизации.

Пусть есть 2 потока. Поток 1 синхронизирует себя завершением какой-либо задачи в другом потоке, постоянно просматривая значения некоторой переменной, доступной из обоих потоков.

поток 1
f:=false
создание двух потоков
f=true
поток 2
вычисления
f:=true
выход

 


нет

 

 

да

дальнейшая работа
выход

 

 


 

Существуют проблемы.

1. Первый поток никогда не впадает в «спячку». Он тратит время процессора на проверки.

2. Булева переменная f никогда не примет значения true.

Вывод: синхронизация необходима.