Я хочу отправить сообщение из главного процесса в каждый поток и распечатать его (да, в каждом потоке). Как мне это сделать?Передача сообщения между потоками в C
Мне нужно отправить сообщение от мастера в поток, затем распечатать его в потоке и закончить.
Я получил этот код:
#include <stdio.h>
#include <pthread.h>
#include <stdlib.h>
void * thread1()
{
while(1){
printf("Hello!!\n");
}
}
void * thread2()
{
while(1){
printf("How are you?\n");
}
}
int main()
{
int status;
pthread_t tid1,tid2;
pthread_create(&tid1,NULL,thread1,NULL);
pthread_create(&tid2,NULL,thread2,NULL);
pthread_join(tid1,NULL);
pthread_join(tid2,NULL);
return 0;
}
Используйте PostThreadMessage, как описано здесь https://msdn.microsoft.com/en-us/library/windows/desktop/ms644946%28v=vs.85%29.aspx – milevyo
Однако вы хотите. Нет «одного правильного пути». Вы можете использовать очередь для каждого потока. Вы можете использовать общую очередь и каждый поток отслеживать, какое сообщение обрабатывается последним. Вы можете использовать файл. Вы можете использовать трубу. В любом случае, вы хотите. –