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

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

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

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

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

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

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

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

 

2. 代码会相对简单

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

 

3. 软件运行速度提升

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

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

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

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

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

 

转载地址:http://bmgia.baihongyu.com/

你可能感兴趣的文章
PHP中日期用到的字符
查看>>
ftpclient遍历目录文件,陷入死循环
查看>>
ERROR:column "rolcatupdate" does not exist
查看>>
js页面文字选中后分享到新浪微博实现
查看>>
StringUtils使用基本方法
查看>>
Linux常用命令大全
查看>>
开发自动化系列 工具集(三) 数据库开发工具
查看>>
阿里云-Xshell连接
查看>>
Android Studio 错误 Application Installation Failed...INSTALL_FAILED_INVALID_APK…
查看>>
操作系统--基本概念
查看>>
Redis中的跳跃表
查看>>
Query And Fetch & Query Then Fetch & DFS Query And Fetch & DFS Query Then Fetch
查看>>
搭建 Java Web 开发环境
查看>>
如何在Linux(CentOS 7)命令行模式安装VMware Tools
查看>>
记录下学习Go语言时用到的一些项目
查看>>
phonegap分享到微信插件(iOS版)
查看>>
Flex端使用alivepdf直接导出PDF文件:测试中文有乱码
查看>>
rabbitMQ、activeMQ、zeroMQ、Kafka、Redis 比较
查看>>
Kafka 设计与原理详解
查看>>
Nginx运维管理脚本
查看>>