多線程理論部份

分享知識  傳遞快樂

 

什麼是線程

線程(Thread)也叫輕量級進程,是操作系統能夠進行運算調度的最小單位,它被包涵在進程之中,是進程中的實際運作單位。線程自己不擁有系統資源,只擁有一點兒在運行中必不可少的資源,但它可與同屬一個進程的其它線程共享進程所擁有的全部資源。一個線程可以創建和撤消另一個線程,同一進程中的多個線程之間可以併發執行。

 

爲什麼要使用多線程

爲了解決負載均衡問題,充分利用CPU資源.爲了提高CPU的使用率,採用多線程的方式去同時完成幾件事情而不互相干擾.爲了處理大量的IO操作時或處理的情況需要花費大量的時間等等,比如:讀寫文件,視頻圖像的採集,處理,顯示,保存等

 

進程和線程的區別:

  • 線程共享內存空間,進程有獨立的內存空間
  • 線程啓動速度快,進程啓動速度慢
  • 線程是執行的指令集,進程是資源的集合
  • 兩個子進程之間數據不共享,完全獨立。同一個進程下的線程共享同一份數據
  • 創建新的線程很簡單,創建新的進程需要對他的父進程進行一次克隆
  • 一個線程可以操作(控制)同一進程裏的其他線程,但是進程只能操作子進程
  • 同一個進程的線程可以直接交流,兩個進程想要通信,必須通過一箇中間代理來實現
  • 對於線程的修改,可能會影響到其他線程的行爲。但是對於父進程的修改不會影響到子進程

 

多線程的好處:

  • 使用線程可以把佔據時間長的程序中的任務放到後臺去處理
  • 用戶界面更加吸引人,這樣比如用戶點擊了一個按鈕去觸發某件事件的處理,可以彈出一個進度條來顯示處理的進度
  • 程序的運行效率可能會提高
  • 在一些等待的任務實現上如用戶輸入,文件讀取和網絡收發數據等,線程就比較有用了.

 

多線程的缺點:

  • 如果有大量的線程,會影響性能,因爲操作系統需要在它們之間切換.
  • 更多的線程需要更多的內存空間
  • 線程中止需要考慮對程序運行的影響.
  • 通常塊模型數據是在多個線程間共享的,需要防止線程死鎖情況的發生

 

 

 

 

 

——————————
如有不足請留言指正
相互學習,共同進步

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