A livelock is similar to a deadlock, except that the states of the processes involved in the livelock constantly change with regard to one another, none progressing.[2] Livelock is a special case of resource starvation; the general definition only states that a specific process is not progressing.[3]

A real-world example of livelock occurs when two people meet in a narrow corridor, and each tries to be polite by moving aside to let the other pass, but they end up swaying from side to side without making any progress because they both repeatedly move the same way at the same time.

Livelock is a risk with some algorithms that detect and recover from deadlock. If more than one process takes action, the deadlock detection algorithm can repeatedly trigger. This can be avoided by ensuring that only one process (chosen randomly or by priority) takes action.[4]

출처 : http://en.wikipedia.org/wiki/Deadlock#Livelock

라이브락은 데드락과 비슷한데, 서로 아무것도 못하고 대기하는 상태가 아니라 두 프로세스가 서로 자원을 양보하는데도 불구하고 같은 상황이 반복되는 상황을 말한다. 실행 흐름이 막힌 것은 아닌데 실제 작업 진행은 불가능하기 때문에 'live' lock 이라고 하는 것 같다.

실사례로는 2명이 지나갈 수 있는 길에서 서로 마주쳤는데 계속 같은 방향으로 비켜주는 것이 있다.

이에 대해 위키피디아의 일본판의 한글 번역을 하고 그림을 직접 만든 페이지가 있어 링크한다.

http://jacking.tistory.com/106
저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by Heart