分享知識 傳遞快樂
什麼是線程
線程(Thread)也叫輕量級進程,是操作系統能夠進行運算調度的最小單位,它被包涵在進程之中,是進程中的實際運作單位。線程自己不擁有系統資源,只擁有一點兒在運行中必不可少的資源,但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。一個線程可以創建和撤消另一個線程,同一進程中的多個線程之間可以併發執行。
爲什麼要使用多線程
爲了解決負載均衡問題,充分利用CPU資源.爲了提高CPU的使用率,採用多線程的方式去同時完成幾件事情而不互相干擾.爲了處理大量的IO操作時或處理的情況需要花費大量的時間等等,比如:讀寫文件,視頻圖像的採集,處理,顯示,保存等
進程和線程的區別:
- 線程共享內存空間,進程有獨立的內存空間
- 線程啓動速度快,進程啓動速度慢
- 線程是執行的指令集,進程是資源的集合
- 兩個子進程之間數據不共享,完全獨立。同一個進程下的線程共享同一份數據
- 創建新的線程很簡單,創建新的進程需要對他的父進程進行一次克隆
- 一個線程可以操作(控制)同一進程裏的其他線程,但是進程只能操作子進程
- 同一個進程的線程可以直接交流,兩個進程想要通信,必須通過一箇中間代理來實現
- 對於線程的修改,可能會影響到其他線程的行爲。但是對於父進程的修改不會影響到子進程
多線程的好處:
- 使用線程可以把佔據時間長的程序中的任務放到後臺去處理
- 用戶界面更加吸引人,這樣比如用戶點擊了一個按鈕去觸發某件事件的處理,可以彈出一個進度條來顯示處理的進度
- 程序的運行效率可能會提高
- 在一些等待的任務實現上如用戶輸入,文件讀取和網絡收發數據等,線程就比較有用了.
多線程的缺點:
- 如果有大量的線程,會影響性能,因爲操作系統需要在它們之間切換.
- 更多的線程需要更多的內存空間
- 線程中止需要考慮對程序運行的影響.
- 通常塊模型數據是在多個線程間共享的,需要防止線程死鎖情況的發生
——————————
如有不足請留言指正
相互學習,共同進步