멀티 스레드에 pthread 라이브러리를 사용하고 있습니다. 내부 스레드 함수, 나는 잠 시스템 호출을 사용합니다. 이것은 단일 스레드 또는 전체 프로세스를 차단할 것입니다. 감사.스레드에서 슬립 시스템 호출
0
A
답변
1
일반적으로 sleep
은 호출 스레드에만 영향을줍니다. 실제 커널 관리 스레드는 서로 독립적으로 실행됩니다. "녹색"스레드가있는 응용 프로그램 (OS 자체가 아니며 응용 프로그램 자체에서 관리)에서는 블록 된 시스템 호출이 모든 것을 차단할 수 있습니다. 그러나 이러한 종류의 단절은 드문 경우입니다. 녹색 스레드를 관리하는 소프트웨어는 시스템 호출에 의하지 않고 sleep
에 이르는 방법을 포함하여 전체 런타임 환경을 제공하는 경향이 있습니다.
더 좋은 질문은 ... 정말로 sleep
이 필요합니까? 시간 기반 동기화는 경쟁 조건 및 취약한 응용 프로그램으로 이어지는 경향이 있습니다. 스레드가 대기하고 서로를 트리거하는 방법이 있습니다. 이는 더 나은 결정론으로 이어집니다.
관련 문제
- 1. 스레드에서 Invoke/BeginInvoke 호출
- 2. 여러 스레드에서 Console.WriteLine 호출
- 3. performSelectorInBackground : 백그라운드 스레드에서 호출
- 4. W2K8의 Windows 시스템 호출 문제
- 5. C# 다른 스레드에서 컨트롤 호출
- 6. VSTO : 기본 Excel 스레드에서 호출
- 7. 특정 스레드에서 델리게이트 호출 C#
- 8. 스레드에서 UI 응용 프로그램 호출
- 9. 시스템 호출 번호와 시스템 호출 핸들러 포인터 사이의 충돌
- 10. fork 시스템 호출
- 11. 시스템 호출 예
- 12. 실행 시스템 호출 오류
- 13. 어셈블리 및 시스템 호출
- 14. 는 시스템 호출
- 15. Fork() 시스템 호출 변경
- 16. Vfork 시스템 호출
- 17. 시스템 호출 및 명령
- 18. 파이프 시스템 호출
- 19. 모의 시스템 호출 루비에서
- 20. Ruby에서 시스템 호출
- 21. Windows에서 시스템 호출
- 22. .NET에서 모노로 시스템 호출
- 23. FUSE에서 시스템 호출 디버깅
- 24. UNIX 시스템 호출 목록?
- 25. .net 시스템 호출 성능
- 26. 리눅스 시스템 호출 getpeername C++
- 27. 시스템 호출 set_tid_address는 언제 사용됩니까?
- 28. Android Linux 시스템 호출 목록
- 29. 뮤텍스 액세스 및 시스템 호출
- 30. 시스템 호출 creat의 이상한 동작
내 코드에는 스레드간에 동기화가 없습니다. 각 스레드가 분리됩니다. 나는 잠자기 syscall을 사용하여 스레드가 몇 가지 작업을 수행 한 후 몇 초 동안 잠자기 상태에 있어야한다는 할당 설명을 따른다. – Rambo