스레드 라이브러리를 커널 코드의 일부로 구현하기위한 코드를 작성하고 있습니까? pthread_create()의 함수 구현은 커널의 일부입니까?스레드 라이브러리를 구현하는 방법은 무엇입니까?
4
A
답변
3
스레드는 때때로 사용자 공간 ("녹색 스레드"라고도 함)에서 순전히 구현되지만 일반적으로 커널 공간에 구현됩니다. wikipedia article에서 자세히 설명합니다.
5
Linux의 경우 pthread_create()
외. glibc 프로젝트의 일부로 구현됩니다. 그것은 (이식성이없는, 리눅스 특유의) syscall clone()
을 사용한다. (리눅스의 fork()
도 clone()
으로 구현됩니다). BSD 중 일부는 rfork()
이라는 비슷한 시스템 콜을 가지고있다.
제 생각에 clone()
또는 rfork()
은 모두 새 프로세스를 만들지 만, "copy-on-write 의미 체계를 사용하여 다른 주소 공간 제공"이라는 플래그를 지정할 수 있습니다. 따라서 fork()
을 원한다면 그 플래그를 지정하십시오. 그러나 스레드를 만들고 싶지 않을 경우 공유 주소 공간이 생깁니다.
(자세한 내용을 제공하도록 편집 됨)
관련 문제
- 1. 스레드 라이브러리를 구현하는 방법부터 시작 하시겠습니까?
- 2. 리눅스에서 스레드 안전 타이머를 구현하는 방법은 무엇입니까?
- 3. J2ME에서 스레드 시간 초과를 구현하는 방법은 무엇입니까?
- 4. Rails에서 스레드 주석을 구현하는 방법은 무엇입니까?
- 5. iPhone 프로젝트에 부스트 스레드 라이브러리를 추가하는 방법은 무엇입니까?
- 6. 스레드/백그라운드 작업자 C#으로 SerialPort를 구현하는 방법은 무엇입니까?
- 7. Blackberry에서 두 개의 UI 스레드 LWUIT를 구현하는 방법은 무엇입니까?
- 8. 실행 종료시 자동으로 종료되는 스레드 풀을 구현하는 방법은 무엇입니까?
- 9. 부스트 스레드 라이브러리를 컴파일하는 방법
- 10. SOAP을 구현하는 방법은 무엇입니까?
- 11. 대기중인지도를 구현하는 방법은 무엇입니까?
- 12. IDEA를 구현하는 방법은 무엇입니까?
- 13. 리스너를 구현하는 방법은 무엇입니까?
- 14. initWithObjects를 구현하는 방법은 무엇입니까?
- 15. 스크롤을 구현하는 방법은 무엇입니까?
- 16. 배지를 구현하는 방법은 무엇입니까?
- 17. Windows에서 Python 다중 처리를 구현하는 방법은 무엇입니까?
- 18. Copy-on-Write를 구현하는 방법은 무엇입니까?
- 19. 부스트에서 라이브러리를 만드는 방법은 무엇입니까?
- 20. jar 라이브러리를 설치하는 방법은 무엇입니까?
- 21. 동적 라이브러리를 컴파일하는 방법은 무엇입니까?
- 22. 중간 라이브러리를 만드는 방법은 무엇입니까?
- 23. 정적 라이브러리를 배포하는 방법은 무엇입니까?
- 24. Ansinerator 라이브러리를 작동시키는 방법은 무엇입니까?
- 25. JIT 라이브러리를 작성하는 방법은 무엇입니까?
- 26. 중첩 된 주석 시스템을 구현하는 방법은 무엇입니까?
- 27. Linux에서 멀티 스레드 C 프로그램을 위해 어떤 스레드 라이브러리를 사용해야합니까?
- 28. 다중 스레드 환경에서 이전 단일 스레드 C++ 라이브러리를 사용하는 방법
- 29. 그런 스타일 UI를 구현하는 방법은 무엇입니까?
- 30. 활성 스레드 수를 얻는 방법은 무엇입니까?