前面講的是進程的相關理論部分python
從本節開始,就是對線程的相關知識的研究了編程
本節對線程進行一個定義,知道什麼是線程多線程
以及橫向對比進程,知曉二者的不一樣點併發
線程是執行程序的最小單位線程
舉個例子:進程
老師讓你讀一本書,那麼這個書能夠看做是進程,而你讀書的這個過程就是線程資源
線程就是用來執行程序的,那麼就能夠這麼想程序
每開一個進程是否是就要執行該進程,而執行程序的最小單位是線程總結
因此每開一個進程,隨之而來的就是自動開一個線程通信
進程將資源都聚合起來,而後給線程執行
多線程就是在一個進程裏存在多個線程,多個線程共享這個進程裏面的資源
就好像班級同窗一塊兒讀投影儀上的文章同樣,投影儀上的文章就是進程裏面的資源
全班同窗就是一個一個的線程,幾乎同時來執行讀書這個‘任務’
線程和進程的區別,主要體如今如下這六個方面:
1.線程共享建立它的進程的地址空間;進程有本身的地址空間
2.線程能夠直接訪問其進程的數據段;進程有本身的父進程數據段副本
3.線程能夠直接與其進程的其餘線程通訊;進程要使用進程間通訊與兄弟進程通訊
4.新線程很容易建立;新進程須要父進程的重複
5.線程能夠對同一進程的線程進行至關大的控制;進程只能對子進程進行控制
6.對主線程的更改(取消、優先級更改等)可能會影響進程的其餘線程的行爲;
對父進程的更改不會影響子進程
其實總結起來,就兩個關鍵:
1.線程共享進程的數據
2.建立線程開銷遠小於進程