LINUX.ORG.RU

История изменений

Исправление alysnix, (текущая версия) :

мутекс нужен для создания «охраняемого участка» то есть участка кода, выполняемого тредом монопольно. и больше ни для чего. не надо его втыкать везде.

мьютекс - реализация охраняемых участков

семафор - для вставания в ожидание нечта - простые ожидания неких ивентов.

кондвар - для вставания ожидания нечта с залокнутым мьютексом - для реализации ожиданий на охраняемых участках.

в общем виде: для сигнала треду о выходе делается выставление некоего булева признака, и его периодическая проверка тредом при выходе из ожиданий по таймауту. но для этого надо все ожидания делать с таймаутом, что истинно верно, если ты хочешь писать нормальный код, который не застрянет навсегда в ожидании того, что не придет.

Исходная версия alysnix, :

мутекс нужен для создания «охраняемого участка» то есть участка кода, выполняемого тредом монопольно. и больше ни для чего. не надо его втыкать везде.

мьютекс - реализация охраняемых участков

семафор - для вставания в ожидание нечта - простые ожидания неких ивентов.

кондвар - для вставания ожидания нечта с залокнутым мьютексом - для реализации ожиданий на охраняемых участках.

в общем виде: для сигнала треду о выходе делается выставление некоего булева признака, и его периодическая проверка тредом при выходе из ожиданий по таймауту.