博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
我们为何要使用多线程,它有什么优点?
阅读量:6157 次
发布时间:2019-06-21

本文共 1071 字,大约阅读时间需要 3 分钟。

其实在平时的开发中,很多程序员都不会去写线程,为啥?因为麻烦,其次是用到的地方并不多,除非逼不得已,大家都不会去写,毕竟写一天代码,拿一天工资,是吧?

麻烦归麻烦,但是多线程的优点不得不说:

1. 资源利用率提升,程序处理效率提高

  打个比方:我们做上传图片的时候,在上传成功后往往会进行图片的处理,原图保存后,会再生成一张小图以作为一些应用的预览图,那么原图的处理就需要程序去读取再处理,假设读取需要花费1秒,处理需要2秒,现在有3张大图,所需要耗费的时间就是(1+2)X3=9秒,根据图片的不同,那么单位时间会更多,总计时间就会更久。

那么如果把程序设计更好的话,那就是在读取文件的时候同时处理上一个文件,这样就可以尽可能的缩短时间,减少客户端的响应,同时也提升了CPU的使用率。

如果还不能理解的话那就再举个例子,我朋友公司是专为某银行处理数据同步的问题,每天凌晨银行那边会有几十万条数据发送过来进行处理,项目本身就是个坑,几百万条数据接收后直接去处理了,每次运行大多都要耗费2.5个小时,时间实在太久,如果哪天有几亿数据是不是要跑几十个小时了?那么就可以用多线程,切割这个数据,利用不同的线程来处理,最后把时间缩短到了半小时左右

 

2. 代码会相对简单

  如果利用单线程去处理文件,那么我们就得标记每次处理的各个节点的状态;而如果使用多线程的话处理完一个扔一个,可以简便不少

 

3. 软件运行速度提升

  就像之前所说的魔兽争霸那样,如果采矿伐木打猎都是由一个农民工来做的话,那他会累死,而如果分配3个农民工来做的话,那么时间大大缩短;同理,软件程序在处理文件的时候也是一个道理。

也就是说,往常我们监听的是用户请求,现在我们把用户请求塞给线程,我们去监听线程就可以了。

举一个不恰当的例子,我们在用eclipse的时候经常会出现这样的情况,一个progress被另一个卡住,下一个必须等待上一个执行完毕后再执行,完毕后我们方可编写代码,这种情况尤其出现在maven编译或者下载jar包的时候。

假如说,eclipse是同时进行任务处理的,那么每个任务处理完后响应一个状态,然后再提示给用户,可以弹出显示,或者在底部状态来加个有颜色的提醒,都可以。(如果理解成消息队列的处理方式也可以,在云计算业务中利用消息队列处理各种服务器请求也是类似道理)

那么,这样的程序设计对于软件自身来说响应速度就更快了,用户的体验也就更高了~

 

转载于:https://www.cnblogs.com/leechenxiang/p/6296845.html

你可能感兴趣的文章
unix环境高级编程-高级IO(2)
查看>>
树莓派是如何免疫 Meltdown 和 Spectre 漏洞的
查看>>
雅虎瓦片地图切片问题
查看>>
HTML 邮件链接,超链接发邮件
查看>>
HDU 5524:Subtrees
查看>>
手机端userAgent
查看>>
pip安装Mysql-python报错EnvironmentError: mysql_config not found
查看>>
http协议组成(请求状态码)
查看>>
怎样成为一个高手观后感
查看>>
[转]VC预处理指令与宏定义的妙用
查看>>
MySql操作
查看>>
python 解析 XML文件
查看>>
MySQL 文件导入出错
查看>>
java相关
查看>>
由一个异常开始思考springmvc参数解析
查看>>
向上扩展型SSD 将可满足向外扩展需求
查看>>
虚机不能启动的特例思考
查看>>
SQL Server编程系列(1):SMO介绍
查看>>
在VMware网络测试“专用VLAN”功能
查看>>
使用Formik轻松开发更高质量的React表单(三)<Formik />解析
查看>>