No záleží, jak to máš přesně implementované, ale řekněme, že vlákno chce pracovat s nějakou položkou v seznamu. Najde ji a ukazatel na ni vloží do nějaké proměnné (ta bude v kritické sekci). A pak s položkou pracuje. Jiné vlákno bude chtít tu stejnou položku, tak si ji najde, ale před tím zkontroluje, jestli ten ukazatel na ni není stejný, jako ten v kritické sekci. Pokud je, tak se zařadí do fronty (my řešili něco podobného s pomocí unixových semaforů). Jak původní vlákno skončí, tak ten ukazatel smaže a pustí jiné vlákno, které čeká třeba na nějakém semaforu. Ale ber to jako úvahu. Nevím, jestli tam nevznikne třeba race condition apod. To chce nad tím sednout a promyslet všechny možnosti..