云端服务器单核服务器是否该使用多线程编程的讨论

来源:互联网 发布:淘宝里怎么发链接 编辑:程序博客网 时间:2024/05/04 01:33
多线程

许多云服务器的基础套餐使用的是单核CPU,我们知道多线程有诸多优势,但是在这种条件下是否应该使用?
答案是根据需求。

在多数的情境中,服务器端单CPU,程序大多只执行2种工作,1是运算,2是报告。
并且通常运算所占资源远大于报告所占(例如每秒执行一次循环运算,每分钟向数据库报告一次)
这时候过多的多线程调用开销从宏观来说实际是降低了效率

如果希望能在单核的情况下,使用多线程提高效率,我认为程序需是符合以下之一的条件:
1 .程序运算时CPU有空闲时间(例如有网络/IO请求,这时候CPU的运算资源空闲了)
2. 报告开销较大(例如频繁写入数据库发送通知邮件等等)

所以考虑到实际情况(不同规模程序对硬件的需求、开发任务量等)
如果使用单核CPU,能用单线程完成的任务,就不必使用多线程;使用多线程,也适可而止。
就软件工程而言,花费50%的额外时间去优化5%的性能是通常无意义的。

原创粉丝点击