FGL reduces contention and increase execution overhead.
LF avoid the additional FGL overhead.
LF still have contentions(the while spin).
Implementation Complexity:
FGL increases the complexity.
LF increases the complexity by a lot.
jellybean
While locking isn't required for LF data structures, we still will need memory fences to ensure different threads have updated values when dealing with relaxed consistency memory systems.
sharangc
Course-grained locks and transactional synchronization are very important concepts. It talks about how Intel TSX allows highly concurrent accesses using only a simple locking mechanism. This is an article by Intel explaining these concepts.
FGL reduces contention and increase execution overhead.
LF avoid the additional FGL overhead.
LF still have contentions(the while spin).
Implementation Complexity:
FGL increases the complexity.
LF increases the complexity by a lot.
While locking isn't required for LF data structures, we still will need memory fences to ensure different threads have updated values when dealing with relaxed consistency memory systems.
Course-grained locks and transactional synchronization are very important concepts. It talks about how Intel TSX allows highly concurrent accesses using only a simple locking mechanism. This is an article by Intel explaining these concepts.