更新时间:2020-11-24 17:32:15 来源:极悦 浏览1222次
许多学习Java的小伙伴为了攻克Java多线程付出了很多的努力,也下了很多功夫。然而,我们在学会了多线程的各种用法之后便不求甚解了,只是追求学会使用多线程的方法,未免有点舍本逐末了。在我看来,单纯的会用只是知其然而不知其所以然。所以,我们对多线程的学习也应该知其所以然:多线程有什么用呢?
下面为大家揭开这个问题的答案,多线程用处有以下4点,我们逐一详看。
1.发挥多核CPU的优势
随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是双核的,4核、8核甚至16核的也都不少见,如果是单线程的程序,那么在双核CPU上就浪费了50%,在4核CPU上就浪费了75%。单核CPU上所谓的”多线程”那是假的多线程,同一时间处理器只会处理一段逻辑,只不过线程之间切换得比较快,看着像多个线程”同时”运行罢了。多核CPU上的多线程才是真正的多线程,它能让你的多段逻辑同时工作,多线程,可以真正发挥出多核CPU的优势来,达到充分利用CPU的目的。
2.防止阻塞
从程序运行效率的角度来看,单核CPU不但不会发挥出多线程的优势,反而会因为在单核CPU上运行多线程导致线程上下文的切换,而降低程序整体的效率。但是单核CPU我们还是要应用多线程,就是为了防止阻塞。试想,如果单核CPU使用单线程,那么只要这个线程阻塞了,比方说远程读取某个数据吧,对端迟迟未返回又没有设置超时时间,那么你的整个程序在数据返回回来之前就停止运行了。多线程可以防止这个问题,多条线程同时运行,哪怕一条线程的代码执行读取数据阻塞,也不会影响其它任务的执行。
3.便于建模
这是另外一个没有这么明显的优点了。假设有一个大的任务A,单线程编程,那么就要考虑很多,建立整个程序模型比较麻烦。但是如果把这个大的任务A分解成几个小任务,任务B、任务C、任务D,分别建立程序模型,并通过多线程分别运行这几个任务,那就简单很多了。
4.优化代码
如果利用单线程去处理文件,那么我们就得标记每次处理的各个节点的状态;而如果使用多线程的话处理完一个扔一个,可以简便不少。
以上列出的四个多线程用处,完美的解决了多线程有什么用的问题,当然,上面列出的几点并未包含多线程的用处所有内容,本文也仅仅作为借鉴。建议结合着本站的Java多线程教程一起学习,才能够为自己的Java多线程学习查漏补缺。
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习