Я написал программу, в которой основной поток создает поток и отправляет событие всякий раз, когда над вторым потоком приходится работать, это прекрасно работает в Windows, но при переносе его на * nix трудно добиться того же.
позвольте мне объяснить, пожалуйста, рассмотрите следующее
/* thread2 function */
thread_function_call()
{
/* be a consumer */
pthread_exit();
}
/* main function */
main()
{
/* create a thread */
pthread_create();
while(1)
{
/* produce the stuff for consumer or thread2 */
/* generate the event */
}
pthread_join();
}
Здесь основной поток в непрерывном цикле, а затем запускает событие / вызывает поток 2, как только он запускает событие / вызывает поток 2,Должна выполняться функция thread2.
Это что-то вроде проблемы производителя и потребителя, пожалуйста, учтите, что все условия синхронизации выполнены.
Пожалуйста, помогите мне, как лучше всего этого достичь