다음 특정 잠금 순서가 있습니다. 나는 현재 순차적으로 수행되는 작업을 수행하기 위해 쓰레드 풀을 작성 중이다.스레드 풀 구현에서 잠금 순서 유지
잠금 순서는 pool-> queue-> job입니다.
그러나 때로는 작업 상태를 확인하기 위해 작업을 잠근 다음 작업을 한 큐에서 다른 큐로 이동하도록 큐를 잠글 필요가 있습니다. 그래서, 잠금 순서를 따라 난이 얻을 :
lock job
if (job->state == CANCELED) {
unlock job
lock queue
lock job
// check that it is still canceled and do work
}
내 질문이있다 잠금 해제/잠금 작업이없는이 작업을 수행하는 다른 방법이? 잠금 주문을 보관해야하며 '상위 키'잠금이 필요한 경우 어떻게 처리할까요?
작업을 잠금 해제하기 전에 작업을 대기열로 옮길 수 있습니까? – andre