多線程詳細講解(多線程1理論介紹)
2023-04-22 05:22:28 2
多線程詳細講解?1. 定義程序:一組計算機指令的有序集合,是靜態的,我來為大家科普一下關於多線程詳細講解?以下內容希望對你有幫助!

多線程詳細講解
1. 定義
程序:一組計算機指令的有序集合,是靜態的。
進程:運行中的程序,是動態的,有自己的生命周期,因創建而產生、因調度而運行、因等待資源或事件而處於等待狀態,因完成任務而被撤銷。是作業系統進行資源分配的基本單位。
線程:是進程的一個實體,是CPU調度和分派的基本單位。
2. 線程與進程的區別和聯繫
- 一個進程至少有一個線程,即主線程;
- 進程在執行過程中擁有獨立的內存單元,而多個線程共享進程的內存;
- 線程不能獨立執行,必須依存於進程中;
- 線程是作業系統的概念。在單CPU單核的情況下,在用戶看來,多個線程是同時執行的,但是從作業系統調度上來看,各個線程是交替執行的。
3. 多線程優點
- 同一進程內的線程共享進程的地址空間。不同的線程可以存取內存中的同一個變量。創建線程所花費的時間遠遠低於創建進程。
- 在系統調度方面,線程間的切換速度要遠遠快於進程間的切換速度。
- 在通信機制方面,進程間的數據空間相互獨立,要依賴專門的方式進行通信(如:共享內存空間、信號量、消息隊列、Socket等);而一個線程的數據可以直接提供給其他線程使用。
- 可以提高多核處理器的效率。
- 可以改善程序的結構。
4. 多線程缺點
- 線程同步是個頭疼的問題。
- 一個線程的崩潰可能影響到整個程序的穩定性。
- 到達一定的線程數程度後,即使再增加CPU也無法提高性能
- 線程能夠提高的總性能有限,而且線程數量較大時,線程本身的調度開銷不小
5. 線程私有數據
線程私有數據如下:
線程號寄存器(包括程序計數器和堆棧指針)堆棧信號掩碼優先級線程私有的存儲空間,