Tag: threading

False sharing

Jestem w trakcie czytania Patterns for Parallel Programming. Jest tam wiele anty-wzorców programowania współbieżnego, a pośród nich False sharing (nawet nie próbuję tego tłumaczyć na polski). Ze względu na wydajność, systemy zarządzania pamięcią wykorzystują cache’owane bloki pamięci najczęściej po 64 lub 128 bajty. Pobieranie…

Interlocked Class

Stanąłem dziś przed następującym problemem. Wewnątrz klasy incrementuję, zeruję liczniki. Z zewnątrz natomiast czytam właściwość ProgressValue które oblicza wartość na podstawie liczników. Chodzi tutaj o postęp ProgressBar’a danej operacji. Jest to przykład gdzie można użyć class’y Interlocked. Oczywiście możemy też synchronizować za pomocą lock’ów,…