LINUX.ORG.RU

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

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

и на каждый объект создавать отдельный мьютекс ?

смотря какой обьект…

ну например некий пакет данных, который обрабатывают несколько тредов паралельно. пока обрабатывается этот пакет, асинхронно приходит новый пакет…

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

а если мьютекс будет один, то тот что кончил первый пакет, будет ждать, пока другие тоже его окончат.

зы.

так еще делают динамическую загрузку-выгрузку плагинов или модулей(я счас не про линукс, а вообще). какой-то тред просит загрузить модуль - делается врапер и там стоит мьютекс и счетчик ссылок и он увеличивается, а когда просит выгрузить модуль - если счетчик ссылок == ноль, то модуль физически выгружается. другие треды тоже хотят этот модуль, и как только последний его выгрузит - модуль будет из памяти выкинут. тут такая кухня работать будет.

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

и на каждый объект создавать отдельный мьютекс ?

смотря какой обьект…

ну например некий пакет данных, который обрабатывают несколько тредов паралельно. пока обрабатывается этот пакет, асинхронно приходит новый пакет…

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

а если мьютекс будет один, то тот что кончил первый пакет, будет ждать, пока другие тоже его окончат.