【发布时间】:2016-04-27 10:00:26
【问题描述】:
尝试在 linux 上实现具有并发支持的简单回显服务器时。
使用了以下方法:
- 使用
pthread函数创建一个线程池,并维护在一个链表中。它在进程启动时创建,并在进程终止时销毁。 - 主线程将接受请求,并使用
POSIX message queue存储接受的套接字文件描述符。 - 池循环中的线程从消息队列中读取,并处理它得到的请求,当没有请求时,它将阻塞。
该程序现在似乎正在运行。
问题是:
- 中间用
message queue是否合适,够效率吗? - 实现需要处理来自多个客户端的并发请求的线程工具的一般方法是什么?
- 如果不适合让线程在池中循环和阻塞以从消息队列中检索 msg,那么如何将请求传递给线程?
【问题讨论】:
标签: c linux multithreading pthreads message-queue