Nawet lepiej, diabli wiedzą jak ja sobie to obmyśalem i systemowi nic do tego.
Nie rozumiem "przerwanie" - podniesienie semafora wpuszacza jakiś watek do roboty - jesli chcesz mu przekazać jakieś dane to np., blokujesz kolejkę danych mutexem, pobierasz sobie i odblokowujesz. Nie ma prawa być problemu. Ten problem jest skomplikowany tylko pozornie. Uzywasz mechanizmu zlecania roboty (semafor) i mechanizmu kontroli kolejki zleceń (mutex). Nic prostszego.
No to co, wstawił do kolejki to jak jakiś się zwolni od razu weźmie robotę.
Semafory nic nie robią w sprawie przekazywania danych. Ich zadaniem jest tylko umożliwienie wątkom pracowników możliwośc "zawieszania" wykonywania i automatycznego ich budzenia. O parametrach nie ma mowy.
A jakie :) ?
O a to ciekawe. Np. mutex:
Nie wiem czy można prościej, choć ja to obudowałem akurat klasą sobie.
Na procesy sa inne techniki komunikacji (choćby sockety/rurki). W przypadku wątków nie ma chyba nic szybszego niż prosty semafor i mutex.