简单说下我的观点,仅供你参考哈: 1:先考虑你的请求是IO密集还是CPU密集?我说的IO密集是指需要read和write收发消息的网络IO,也就是通信;CPU密集例如需要经过运算才能出结果,且时间较长。 2:如果是第一种IO密集型的,那我觉得你没必要把所有的请求都交给线程池去处理。如果没有读写文件等磁盘IO耗时的操作,甚至都不一定使用线程池。这种方式下 One loop per thread模型无疑是最高效的了,说白了就是在单个EPOLL中完成所有的读写(网络数据的读写,而不是读文件)和定时事件。 3:如果是CPU密集型的,那用thread_pool没有问题,就看你的配置的线程数和代码有没有问题了。
简单说下我的观点,仅供你参考哈:
1:先考虑你的请求是IO密集还是CPU密集?我说的IO密集是指需要read和write收发消息的网络IO,也就是通信;CPU密集例如需要经过运算才能出结果,且时间较长。
2:如果是第一种IO密集型的,那我觉得你没必要把所有的请求都交给线程池去处理。如果没有读写文件等磁盘IO耗时的操作,甚至都不一定使用线程池。这种方式下 One loop per thread模型无疑是最高效的了,说白了就是在单个EPOLL中完成所有的读写(网络数据的读写,而不是读文件)和定时事件。
3:如果是CPU密集型的,那用thread_pool没有问题,就看你的配置的线程数和代码有没有问题了。
这个问题没有实际环境也不好回答,我全当抛砖引玉,不对的地方望指出。