多线程讲解一: 多线程与进程的理解(排除你对多线程的理解误区)

线程与进程的区别:
1. 系统运行的每一个程序都是一个进程。比如java,QQ,微信,360安全卫士等。
2. 一个进程可能有多个线程。比如java这个进程运行起来后,除了我们写的程序需要运行, 还有GC回收线程。

总结: 进程是所有线程的集合,每一个线程是进程中的一条执行路径。


多线程的作用: 提高程序运行效率。


解释:cup运行效率是特别高的,你不用放在那里也是浪费。可以把cpu想象成是很多人的集合,如果是单线程,那么就是1个人,其他人全部休息。
使用多线程的话,比如创建3个线程,就是在cpu里找3个人,其他很多人也是休息的。那么现在人多了,执行任务的速度自然就高了。

有些人会有个误区:就是电脑执行时是一条一条执行的,如果使用多线程,也是一个一个的去执行,那么为什么会快很多呢 ?
原因就是:你理解成了完成一个任务。电脑确实是一条一条执行的,但是线程的运行是抢占式的占用cpu资源,每一条的执行只会消耗非常小量的cpu资源。
你还可以理解为你有光的速度,让你去河里打水装满一个缸,你可能瞬间就完成了,但你让你去装满100个缸,由于你速度够快,依然是一瞬间完成。只是多消耗了你的体力,也就是多消耗了cpu资源。

比如:
当我们用百度云盘下载文件的时候,如果是单线程,那么我们就是派一个人去复制数据到电脑上,也就是每次都只能下载一个文件。
如果是多线程,比如创建5个线程,就是5个人去复制数据到电脑上。就可以同时下载5份文件。而且cpu还有很多剩余。

 

 

全程没有使用官方术语,希望你能更好的理解,谢谢。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章