단일 링크 된 목록을 사용하여 멀티 스레딩에서 rw-locks이 얼마나 정확하게 작동하는지에 대한 질문이 있습니다. Pitcure에있는 모든 시나리오의RW 잠금을 사용하는 다중 스레드에서 Del. 및 r/w 링크 목록 노드 -> 교착 상태?
첫째 :
Head ==> A ==> B ==> C ==> Tail
^
| |
| ----------> Thread 2:
Thread 1: - rw-access B
-deleting B
이제 텍스트; 스레드 1은 노드 B를 삭제하여 A를 잠그고 B로 잠긴 후 B가 잠긴 후 스레드 2가 B로 /로부터 정보를 읽거나 쓰려고 시도하므로 B를 잠그려고하는 중입니다. 스레드 1이 이미 B.
잠겨 있기 때문에가 지금은 조금 스레드 1 삭제 B 후 발생 및 B의 잠금을 해제 무엇
을 혼동 해요, 잠깐?
free (b)를 사용하여 Lock in B를 삭제했기 때문에 스레드 1이 교착 상태입니까?
스레드 1에서 B 용 잠금 장치를 파괴해야합니까?
이 사례를 일상적으로 관리해야합니까? like : B가 여전히 노드 인 경우 잠금을 얻은 후 확인 하시겠습니까?
설명하기위한 또 다른 "그림". 당신이 목록 노드를 삭제/삽입하려면
종류가
첫 번째로 코멘트와 책 팁 덕분에, 나는 당신의 추천 된 문헌에 대한 연구를 거의하지 않았고 나의 질문 중 거의 아무 것도 대답하지 못했다. 그러나 나는 알고 싶은 새로운 것들을 배웠다;) – JNgoon