lockfree

    LockFreeList

    LockFreeList

    1. Locking Mechanism의 문제 우리가 멀티쓰레드 상황에서 쓰레드간 공유자원에 대하여 consistency를 위해 Locking Mechanism을 사용하곤 한다. 이러한 Lock의 경우 다음과 긑은 문제를 야기하게 된다. DeadLock : 당연하다. Priority Inversion : OS의 스케줄링에 따르면 우선순위가 낮은 프로세스가 먼저 Lock을 획득하게 되어 우선순위가 역전되는 현상이 발생한다. Convoying : Locking을 획득하고 이를 해제하기 까지 가장 속도가 느리게 걸리는 프로세스에 의해 다른 프로세스들의 속도 또한 지연되는 현상을 의미한다. Async-signal unsafety : function이 signal handler에서도 안전하게 호출될 수 있는 것을 ..