我正在为多线程Web服务器设计一个C程序。我想接受一个线程上的所有请求,并在第二个线程上使用线程池处理它们。 我很难让两个线程并行运行。我附加了我的代码的架构。
pthread_t entry, scheduler, temp;
pthread_create(&entry, NULL, (void *)&listen, (void *)server_sockfd);
pthread_create(&scheduler, NULL, (void *)&scheduler, (void *)server_sockfd);
pthread_join (entry, NULL);
pthread_join (scheduler, NULL);
我的第一个线程监听将接受来自客户端的所有请求并将其放入队列中,第二个线程将安排它们。 我的问题是:我的第一个线程一直在运行,我的第二个线程永远不会运行。第一个线程具有accept()系统调用的套接字函数,它在While循环中使用,因此它将一直监听。
请告诉我如何并行运行两个线程。 谢谢。