如果想通过使用多线程来提高执行效率,那么必须满足如下条件: 1. 你的机器不能仅仅是单核的CPU 2. 并发执行的多个任务之间不能有依赖关系 这两个条件缺少任何一个,都不能达到你的目的。
[quote=引用 9 楼 wwwspider001 的回复:] 这种只是转发,没有额外的处理,单线程,只要占用的cpu单核不打满,并且网络工作正常,就是单线程效率高 如果需要处理的时间长,肯定是多线程占优,比如把处理等同于Sleep很长时间
这种只是转发,没有额外的处理,单线程,只要占用的cpu单核不打满,并且网络工作正常,就是单线程效率高 如果需要处理的时间长,肯定是多线程占优,比如把处理等同于Sleep很长时间
如果有锁应该是单线程好点,不考虑IO效率,首先多CPU和单CPU在锁面前就是等效的了,反正都要等锁。多线程多了任务的切换开销。个人感觉只有在需要对数据进行处理时,并且一般是收数据,处理速度达不到收取速度时才会考虑多线程。
[quote=引用 1 楼 shootingstars 的回复:] 这个差不多吧。你的队列加锁只要不是太烂的话。。。 目前机器全速发送或者接收,瓶颈都是网卡速度。
这个差不多吧。你的队列加锁只要不是太烂的话。。。 目前机器全速发送或者接收,瓶颈都是网卡速度。
18,356
社区成员
64,214
社区内容
加载中
试试用AI创作助手写篇文章吧