新闻资讯

新闻资讯 通知公告

程序什么时候应该使用线程,什么时候单线程效率高?

编辑:009     时间:2020-02-21
程序什么时候应该使用线程?

    使用多线程编程可以给程序员带来很大的灵活性,同时也使原来需要复杂技巧才能解决的问题变得容易起来。不论什么时候只要能用单线程就不用多线程,只有在需要响应时间要求比较高的情况下用多线程。某操作允许并发而且该操作有可能阻塞时,用多线程。

线程很有用,但当使用线程时,可能会在解决老问题的同时产生新问题。例如要开发一个字处理程序,并想让打印功能作为单独的线程自己执行。这听起来是很好的主意,因为在打印时,用户可立即返回,开始编辑文档。但这样一来,在该文档被打印时文档中的数据就有可能被修改,打印的结果就不再是所期望的内容。也许最好不要把打印功能放在单独的线程中,不过如果一定要用多线程的话,也可以考虑用下面的方法解决:

第一种方法是锁定正在打印的文档,让用户编辑其他的文档,这样在结束打印之前,该文档不会作任何修改;

第二个方法可能更有效一些,即可以把该文档拷贝到一个临时文件中,打印这个临时文件的内容,同时允许用户对原来的文档进行修改。当包含文档的临时文件打印完成时,再删去这个临时文件。

通过上面的分析可以看出,多线程在帮助解决问题的同时也可能带来新问题。因此有必要弄清楚,什么时候需要创建多线程,什么时候不需要多线程。总的来说,多线程往往用于在前台操作的同时还需要进行后台的计算或逻辑判断的情况,而对于GUI(图形用户接口),除了开发MDI(多文档界面)应用程序外,应尽量不使用多线程。

多线程
1、就如多了几副碗筷,可以抢占更多的系统资源,加快可以分割成独立执行单元的程序段运行
2、提供良好的操作感受:不在UI主线程执行费时的作业(这些作业以线程运行)
3、响应多个并行的请求

简单的顺序执行方式不能满足要求的时候需要考虑多线程实现,或者有些多任务管理时也需要用到多线程,否则无法并行执行不同功能等等吧。

单线程好比所有工作都要你自己干,那样你只能一样一样来,多进程好比你把这些工作分给若干人,大家同步进行,同步进行的好处是大家各干各的,除了接口外,其他工作都独立完成,这样不管是逻辑还是时间上都更加合理,就好象你们单位的若干部门协调工作一样。如果所有部门的工作都要你们老总一个人干,那就是单线程了。

什么时候单线程效率高?

对于处理时间短的服务或者启动频率高的要用单线程,相反用多线程!
————————————————
版权声明:本文为CSDN博主「五山口老法师」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Fly_as_tadpole/article/details/82765308
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

回复列表

相关推荐