스레드가 차단 될 때이 스레드가 동일한 프로세스 또는 해당 프로세스의 다른 스레드를 차단해야 할 필요가 있습니까? 매번 이런 일이 발생합니까?스레드가 차단 된 경우. 동일한 프로세스 또는 전체 프로세스에서 다른 스레드를 차단할 수 있습니까?
답변
확실히. 그렇지 않은 경우 교착 상태에 대처할 필요가 없습니다. 시나리오는 차단 된 스레드가 다른 스레드가 획득하려고 시도하는 동기화 개체를 획득했기 때문입니다. 그것은 막을 것이다.
좋아요, 이제 질문을받습니다. 일반적으로 그렇습니다. 블로킹 조건을 해제하려면 다른 코드를 실행해야합니다. 명백하지 않은 경우는 스레드가 I/O에서 차단 된 경우 드라이버에서 코드를 실행하는 커널 스레드입니다. 또는 프로세서를 확보하기 위해 대기 중이거나 무제한 시간 초과로 대기 중이므로 스레드가 차단 된 경우 스레드 스케줄러.
예. 이것은 하나의 스레드가 다른 스레드가 어떤 작업을 수행 할 때까지 대기해야하는 모든 동기화 작업에서 발생할 수 있습니다. 예를 들어, 스레드 A가 잠금을 보유하고 커널에서 긴 차단 작업을 수행하면 잠금을 획득하려고 시도하면 다른 스레드 B가 차단됩니다. 스레드 B는 적어도 스레드 A의 블로킹 작업이 끝날 때까지 차단됩니다. 극단적 인 경우에
, 서로에 대기중인 스레드는 Deadlock
추가 설명이가 발생합니다 : 서로 독립적으로 프로세스 실행에
스레드. 하나의 스레드 차단이 다른 스레드를 반드시 차단하지 않아야합니다. 이것은 스레드가 처음 사용되는 주된 이유 중 하나입니다. 과정에서
스레드가 차단되고, 그것은 또한 블록 모든 스레드
아니요, 이것은 단순히 사실이 아닙니다. 교착 상태는 이미 게시 된 답변에 설명 된 경우에 발생합니다. 당신이 * 전혀 말하지 않기 때문에 그것은 자동적으로 일어나지 않습니다. –
- 1. glGetError가 스레드를 차단할 수 있습니까?
- 2. 리눅스 세마포어는 프로세스 자체를 차단할 수 있습니까?
- 3. performSelector : onThread : 대상 스레드가 차단 된 경우
- 4. DatagramSocket.receive() 호출로 인해 차단 된 스레드를 깨울 수 있습니까?
- 5. Java의 다른 프로세스에서 스레드를 시작하십시오.
- 6. 프로세스에서 하나의 스레드가 충돌하면 어떻게됩니까?
- 7. 동일한 프로세스에서 멀티 스레드가 공유하는 것은 무엇입니까?
- 8. 스레드가 차단 된 위치를 찾으십시오.
- 9. C# 차단 된 스레드를 죽이는 방법?
- 10. 파이썬은 신호가있는 대기열에서 차단 된 스레드를 어떻게 죽일 수 있습니까?
- 11. 스레드가 여러 개인 스레드 또는 프로세스
- 12. Android : UI 스레드가 작업을 완료 할 때까지 백그라운드 스레드가 차단 될 수 있습니까?
- 13. 3 개의 스레드가 동일한 모니터를 기다리는 동안 차단 된 상태입니다. 해당 모니터를 소유 한 스레드가 없습니다.
- 14. UIWebView가 웹 스레드를 막히게하려고 할 때 주 스레드가 멈추지 않음
- 15. Spotlight NSMetadataQuery를 차단할 수 있습니까?
- 16. SetEvent는 대기중인 스레드를 하나 또는 모두 차단 해제합니까?
- 17. 가 완료되면 이미 차단 된 스레드를 깨우려고
- 18. 다른 C 프로세스에서 새 독립 프로세스 만들기
- 19. 양식 필러를 차단할 수 있습니까?
- 20. 자바 프로세스에서 수천 개의 스레드가 생성 ... 왜?
- 21. 소켓이있는 별도의 스레드를 죽이는 경우
- 22. 프로세스에서 sched_setaffinity를 수행하면 스레드에 의해 생성 된 스레드가 영향을받습니다.
- 23. 하나의 스레드가 차단되면 다른 스레드는 어떻게됩니까?
- 24. 상승 된 프로세스에서 정상적으로 프로세스 실행
- 25. 하나의 프로세스에서 동일한 이름의 DLL 2 개를로드 할 수 있습니까?
- 26. 다른 앱 도메인에서 스레드를 만들 수 있습니까?
- 27. 다른 프로세스에서 Android 서비스를 실행해도 동일한 힙 한도에 기여합니까?
- 28. 경우 대리 프로세스 또는 COM +
- 29. 많은 스레드가 동일한 데이터베이스 테이블에 동시에 액세스하는 경우 linqtosql이 처리합니까?
- 30. 동일한 DLL이 프로세스에서 두 번로드되었습니다.
변명 내 그런 일이 나이 경우 possibility.i 물어 원한다면 뜻을 didnt expression..i 잘못된 : 스레드가있는 경우 차단되는 것은이 스레드가 동일한 프로세스 또는 해당 프로세스의 다른 스레드를 차단해야한다는 것인가? 매번 이런 일이 발생합니까? – Dchris
@user :이 설명을 포함하도록 질문을 편집 할 수 있습니까? – Karmastan
알겠습니다. 게시물이 업데이트되었습니다. –