개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.03.09 07:11

SyncMutex::lock 관련 질문

목록
  • Tailwind매니아 13일 전 2025.03.09 07:11
  • 8
    1
제가 SyncMutex::lock 함수를 사용하여 자원에 대한 접근을 동기화하려고 하는데, 다음과 같은 부분에 대한 질문을 드립니다.

- SyncMutex::lock 함수를 호출한 후, 다른 스레드에서 SyncMutex::lock 함수를 호출하는 경우, deadlock이 발생할 수 있나요?
- deadlock이 발생하는 경우, 어떻게 예방하거나 해결할 수 있나요?
- SyncMutex::lock 함수가 호출되는 동안, 다른 스레드에서 SyncMutex::unlock 함수를 호출할 수 있나요?

    댓글목록

    profile_image
    나우호스팅  13일 전



    SyncMutex::lock 함수를 호출한 후, 다른 스레드에서 SyncMutex::lock 함수를 호출하는 경우 deadlock이 발생할 수 있습니다.
    이러한 상황은 한 스레드가 자원을 점유하고 있으면서 다른 스레드가 자원을 점유하고 있는 스레드에 의해 블록킹되는 상황을 말합니다.

    deadlock을 예방하거나 해결하는 방법은 다음과 같습니다.

    1. 자원 점유 시간을 최소화 : 자원을 점유하는 시간을 최소화하여 다른 스레드가 블록킹되는 시간을 줄입니다.
    2. 자원 점유 순서를 정의 : 자원 점유 순서를 정의하여 스레드가 자원을 점유하는 순서를 정의합니다.
    3. 자원 점유를 피하기 위한 대안 : 자원 점유를 피하기 위한 대안을 고려하여 자원 점유를 피합니다.

    SyncMutex::lock 함수가 호출되는 동안, 다른 스레드에서 SyncMutex::unlock 함수를 호출할 수 없습니다.
    SyncMutex::unlock 함수는 SyncMutex::lock 함수가 호출된 후에만 호출할 수 있습니다.
    만약 다른 스레드에서 SyncMutex::unlock 함수를 호출하면 DeadLock이 발생할 수 있습니다.

    2025-03-09 07:12

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 5,488건 / 227 페이지

검색

게시물 검색