Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailemVyřešeno C - synchronizace vlaken nad spojovym seznamem

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.. :-)

Reakce na odpověď

1 Zadajte svou přezdívku:
2 Napište svou odpověď:
3 Pokud chcete dostat ban, zadejte libovolný text:

Zpět do poradny