多线程程序中,子线程是否越多越好?

时间:2020-12-18 18:35:05
我现在开发的项目中,涉及到串口数据采集,多块板卡,每块板卡是不同的通讯协议,每块板卡有多个通道(多个COM口),需要用多线程同步(事件驱动方式),是每个板卡各自开辟一个线程好呢(共四、五个)?还是每个COM口开辟一个线程?(十多个线程)

14 个解决方案

#1


不是吧

#2


不是的
因为线程要有开销的
侯捷的翻译的《Win32多线程程序设计》书中 建议 CPU数目×2+2

#3


那一般CPU是单核,开四个线程最合适????

#4


在能满足需要的情况下,线程越少越好。

#5


 对头,线程还是越少越好,同步问题不好控制,再说浪费资源。。。。。。

#6


能不用就不用多线程。

#7


单CPU的情况下,多线程不一定比单线程效率高。

#8


引用 6 楼 jennyvenus 的回复:
能不用就不用多线程。

#9



引用 7 楼 yuntianhai 的回复:
单CPU的情况下,多线程不一定比单线程效率高。

#10


多谢多谢LS各位!!!

#11


线程的数目多少需要根据程序的实际应用和机器的配置环境来确定
太多线程肯定不是最有效的

#12


提出多线程的目的在于简化设计,提高开发效率,而不是提高运行效率,基本上运行效率和多线程设计是背道而驰的。
软件设计应该遵循 开发效率 运行效率 2者的平衡,也就是追求低成本。

个人看法

#13


每个板卡各自开辟一个线程好呢(共四、五个)?还是每个COM口开辟一个线程?(十多个线程)

我想还是选择后者的好,每块板卡开辟一个线程的话,你如何实现在个COM之间切换,还是开线程时就把com设置好了

#14


同意。
引用 12 楼 WingForce 的回复:
提出多线程的目的在于简化设计,提高开发效率,而不是提高运行效率,基本上运行效率和多线程设计是背道而驰的。 
软件设计应该遵循 开发效率 运行效率 2者的平衡,也就是追求低成本。 

个人看法

#1


不是吧

#2


不是的
因为线程要有开销的
侯捷的翻译的《Win32多线程程序设计》书中 建议 CPU数目×2+2

#3


那一般CPU是单核,开四个线程最合适????

#4


在能满足需要的情况下,线程越少越好。

#5


 对头,线程还是越少越好,同步问题不好控制,再说浪费资源。。。。。。

#6


能不用就不用多线程。

#7


单CPU的情况下,多线程不一定比单线程效率高。

#8


引用 6 楼 jennyvenus 的回复:
能不用就不用多线程。

#9



引用 7 楼 yuntianhai 的回复:
单CPU的情况下,多线程不一定比单线程效率高。

#10


多谢多谢LS各位!!!

#11


线程的数目多少需要根据程序的实际应用和机器的配置环境来确定
太多线程肯定不是最有效的

#12


提出多线程的目的在于简化设计,提高开发效率,而不是提高运行效率,基本上运行效率和多线程设计是背道而驰的。
软件设计应该遵循 开发效率 运行效率 2者的平衡,也就是追求低成本。

个人看法

#13


每个板卡各自开辟一个线程好呢(共四、五个)?还是每个COM口开辟一个线程?(十多个线程)

我想还是选择后者的好,每块板卡开辟一个线程的话,你如何实现在个COM之间切换,还是开线程时就把com设置好了

#14


同意。
引用 12 楼 WingForce 的回复:
提出多线程的目的在于简化设计,提高开发效率,而不是提高运行效率,基本上运行效率和多线程设计是背道而驰的。 
软件设计应该遵循 开发效率 运行效率 2者的平衡,也就是追求低成本。 

个人看法