LFthreads: A lock-free thread library or "Blocking without locking"
This paper presents LFthreads, a thread library whose synchronization is entirely based on lock-free techniques, which means that no spin-locks or similar synchronization mechanisms are employed in the implementation of the multithreading. This implies that processors are always able to do useful work and is achieved by a new synchronization mechanism that does not need any special kernel support. Since lock-freeness is highly desirable in multiprocessors due to its advantages in performance, fault-tolerance, convoy- and deadlock-avoidance, there is an increased demand in lock-free methods in multiprocessor applications, hence also in multiprocessor system services. This is why the existence of a lock-free multithreading library is important. To the best of our knowledge LFthreads is the first thread library that provides a lock-free blocking synchronization primitive for application threads.