多線程講解一: 多線程與進程的理解(排除你對多線程的理解誤區)

線程與進程的區別:
1. 系統運行的每一個程序都是一個進程。比如java,QQ,微信,360安全衛士等。
2. 一個進程可能有多個線程。比如java這個進程運行起來後,除了我們寫的程序需要運行, 還有GC回收線程。

總結: 進程是所有線程的集合,每一個線程是進程中的一條執行路徑。


多線程的作用: 提高程序運行效率。


解釋:cup運行效率是特別高的,你不用放在那裏也是浪費。可以把cpu想象成是很多人的集合,如果是單線程,那麼就是1個人,其他人全部休息。
使用多線程的話,比如創建3個線程,就是在cpu裏找3個人,其他很多人也是休息的。那麼現在人多了,執行任務的速度自然就高了。

有些人會有個誤區:就是電腦執行時是一條一條執行的,如果使用多線程,也是一個一個的去執行,那麼爲什麼會快很多呢 ?
原因就是:你理解成了完成一個任務。電腦確實是一條一條執行的,但是線程的運行是搶佔式的佔用cpu資源,每一條的執行只會消耗非常小量的cpu資源。
你還可以理解爲你有光的速度,讓你去河裏打水裝滿一個缸,你可能瞬間就完成了,但你讓你去裝滿100個缸,由於你速度夠快,依然是一瞬間完成。只是多消耗了你的體力,也就是多消耗了cpu資源。

比如:
當我們用百度雲盤下載文件的時候,如果是單線程,那麼我們就是派一個人去複製數據到電腦上,也就是每次都只能下載一個文件。
如果是多線程,比如創建5個線程,就是5個人去複製數據到電腦上。就可以同時下載5份文件。而且cpu還有很多剩餘。

 

 

全程沒有使用官方術語,希望你能更好的理解,謝謝。

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