发布网友 发布时间:2022-04-20 04:05
共4个回答
热心网友 时间:2023-09-06 22:27
单线程程序的执行时一步一步的走,第一步完成了,才开始做第二步。举个例子,我的一个程序的目的是查询一张表的所有数据用java的窗体将数据展示出来,没用多线程的话,我会先查数据,必须在查完之后,在渲染窗体,打开这个窗体界面。假如数据量大的话,我运行程序了几分钟都没什么反应。 这时我可以开一条线程去查询数据,打开窗体,和查询数据同时进行,这样做的话增强利用率,节约时间。不用多线程的话,程序必定会先执行完一个步骤才会去执行下一步
如图
热心网友 时间:2023-09-06 22:27
一般需要并发处理,提高性能的时候,比如从消息中间件MQ接收到发过来的一条消息,你要对消息进行业务逻辑处理,并且还要把消息通过调用第三方接口的方式发送给第三方,这时候如果处理完业务逻辑再调用第三方接口发送,或者顺序反过来,都会有一方收另一方性能的一些影响,这种就可以收到消息后启动一个子线程去调用第三方接口,主线程继续执行业务逻辑,异步执行,互不干扰,性能最好。再举例一个场景:例如我们做个ftp文件大上传,上传一个10G的文件,对文件按200M进行切割,可以切割成52个文件,将文件碎片上传后再合并成一个文件,这种如果用单线程在网速较好的情况比较慢,就可以启动多线程,例如一次启动4个线程同时上传,当某个线程上传完后再传下一段文件块,一直保证4个线程同时再传直到文件块全部传完,这种多线程上传在网速好的情况性能会高很多。
热心网友 时间:2023-09-06 22:28
里面有你想知道的大部分:java 线程理解
热心网友 时间:2023-09-06 22:28
多个任务同时进行的时候