stm

Kiedy / dlaczego używać MVar nad TVar

Uważam, że TVar jest dość łatwy w obsłudze, chociaż mvar wydaje się trochę prostszy, podczas gdy TVar jest trochę bardziej fu ... TVar? Przypuszczam, że zawsze, gdy nie potrzebuję aktualizacji transakcyjnej, mogę użyć MVar, ale w jaki sposób mi to służy?

Haskell fast concurrent queue

Problem Halo! Piszę bibliotekę logowania i Chciałbym stworzyć logger, który będzie działał w osobnym wątku, podczas gdy ws ... ze wszystkich wersji - czy ktoś może powiedzieć więcej, Dlaczego mamy takie wyniki i czy w każdym razie możemy zrobić lepiej?

Różnica między TVar i TMVar

Widziałem {[0] } jest prostym kontenerem, podczas gdy {[1] } jest taki sam jak MVar, co oznacza, że ma blokadę itp., ale wewn ... użyć, jeśli, powiedzmy, masz typ [Handle] listę uchwytów gniazd, których chcesz użyć między wątkami wykonanymi przez forkIO?

Jak zaimplementować pamięć transakcyjną oprogramowania?

Jeśli chodzi o rzeczywiste instrukcje atomowe niskiego poziomu i ogrodzenia pamięci (zakładam, że są używane), jak zaimplemen ... clobbered(a więc na szczęście czasami dwa wątki mogą wykonać tę samą sekcję krytyczną jednocześnie bez potrzeby wycofywania)?