~~並發編程(七):重要方法~~


進擊のpython

*****

並發編程——線程理論


前面講的是進程的相關理論部分

從本節開始,就是對線程的相關知識的研究了

本節對線程進行一個定義,知道什么是線程

以及橫向對比進程,知曉兩者的不同點


什么是線程

線程是執行程序的最小單位

舉個例子:

老師讓你讀一本書,那么這個書可以看作是進程,而你讀書的這個過程就是線程

線程就是用來執行程序的,那么就可以這么想

每開一個進程是不是就要執行該進程,而執行程序的最小單位是線程

所以每開一個進程,隨之而來的就是自動開一個線程

進程將資源都聚合起來,然后給線程執行

多線程就是在一個進程里存在多個線程,多個線程共享這個進程里面的資源

就好像班級同學一起讀投影儀上的文章一樣,投影儀上的文章就是進程里面的資源

全班同學就是一個一個的線程,幾乎同時來執行讀書這個‘任務’


線程VS進程

線程和進程的區別,主要體現在以下這六個方面:

1.線程共享創建它的進程的地址空間;進程有自己的地址空間

2.線程可以直接訪問其進程的數據段;進程有自己的父進程數據段副本

3.線程可以直接與其進程的其他線程通信;進程要使用進程間通信與兄弟進程通信

4.新線程很容易創建;新進程需要父進程的重復

5.線程可以對同一進程的線程進行相當大的控制;進程只能對子進程進行控制

6.對主線程的更改(取消、優先級更改等)可能會影響進程的其他線程的行為;

對父進程的更改不會影響子進程

其實總結起來,就兩個關鍵:

1.線程共享進程的數據

2.創建線程開銷遠小於進程


*****
*****


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM