저는 멀티 스레딩/병렬 처리 문서에 묻혀있어 내가 디자인해온 프로그래밍 언어로 스레딩 구현을 구현하는 방법을 알아 내려고합니다.조인을 종료하지 않고 POSIX 스레드에서 '조인'(블록) 할 수 있습니까?
정신 모형을 pthreads.h
라이브러리에 매핑하려하지만 한 가지 문제가 있습니다. 번역기 인스턴스가 routine
(언어의 클로저/함수) 해석을 완료 한 후에도 계속 존재해야합니다. 데이터 유형). 이후에 기타routine
을 해석에 할당하려고하므로 스레드 및 인터프리터 설정/해체 시간이 절약됩니다.
pthread_join(3)
에 pthread_exit(3)
을 호출하여 원래 스레드를 차단 해제해야한다는 것을 제외하고는 문제가 없습니다. 원래 스레드 (routine
을 실행 한 결과가 필요할 때)를 차단 한 다음 하위 루틴의 해석이 완료되면 차단을 해제하려면 어떻게합니까?
이 경우에는 세마포어만으로 충분할 수 있습니다. init은 값 0으로, 한 스레드에서 대기하고 다른 스레드에 게시합니다. 그래도 같은 원리. –
'기다려라.'라고 말하면, 원래 스레드의 루프와 딱딱한 루프를 의미합니까? 그건 ... 음, 나는 그런 해커/절름발이 솔루션을 피하려고 노력했다. 할 수 있다면'pthread.h' 라이브러리를 사용하여 실제로 스레드를 멈추고 싶습니다. 그래서 스케줄이 잡히지 않습니다 : 실행 시간을 줄여야합니까? – ELLIOTTCABLE
@elliotcable : pthread_cond_wait : http://opengroup.org/onlinepubs/007908799/xsh/pthread_cond_wait.html – rpetrich