Lock-free programming is a well-known technique for multithreaded programming. Lock-free programming is a way to share changing data among several threads without paying the cost of acquiring and releasing locks. On practice, parallel programming models must include scalable concurrent algorithms and patterns. Lock-free programming patterns play an important role in scalability. This paper is devoted to lockfree data structures and algorithms. Our task was to choose the data structures for the concurrent garbage collector. We aim to provide a survey of lock-free patterns and approaches, estimate the potential performance gain for lock-free solutions. By our opinion, the most challenging problem for concurrent programming is the coordination and data flow organizing, rather than relatively low-level data structures. So, as the most promising from the practical point of view lock-free programming pattern, we choose the framework based on the Software Transactional Memory.
From WSEAS page