Ich habe mal ein wenig gegooglelt. Bin jetzt zwar ein wenig (die Betonung liegt auf wenig
) schlauer, aber so richtig was gefunden habe ich nicht.
Also erstmal muss man zw. wait-free und lock-free unterscheiden. Wait-free gibt es so gut wie gar nicht, weil sie performance-mäßig nicht so der Bringer sind (sollen wohl selbst einfach gelockte Sachen schneller sein) und sie haben einen hohen Speicherverbrauch der wohl linear mit der Anzahl der Threads steigt.
Lock-free hingegen ist ne sehr interessante Sache, denn damit gibt es keine Deadlocks mehr und man kann auch Threads/Prozesse beenden die gerade an der Datenstruktur arbeiten ohne das was passiert.
Performancemäßig sind die (richtig programmiert) auch schneller und verbrauchen sogar weniger Speicher (war an nem Bsp von nem MemoryAllocator) als ne schnelle gelockte Variante.
Falls hier irgendjemand ist der mehr darüber weiß, immer her damit.