Я утопаю в документах с многопоточностью / параллелизмом, пытаясь понять, как реализовать реализацию многопоточности на языке программирования, который я проектировал.
Я пытаюсь отобразить ментальную модель в библиотеку pthreads.h
, но у меня возникают проблемы с одной вещью: мне нужно, чтобы экземпляры интерпретатора продолжали существовать после того, как они завершили интерпретацию routine
(языка тип данных замыкания / функции), потому что позже я хочу присвоить им другие routine
для интерпретации, тем самым сэкономив мне время на установку / разборку потока и интерпретатора.
Это было бы хорошо, за исключением того, что pthread_join(3)
требует, чтобы я позвонил pthread_exit(3)
, чтобы "разблокировать" исходную ветку. Как я могу заблокировать исходный поток (когда ему нужен результат выполнения routine
), а затем разблокировать его после завершения интерпретации дочерней процедуры?