多任務:操作系統在可以在同一時間運行多個程序
1.多任務的執行方式:
1.1 併發: 多個任務交替執行
1.2 並行: 多個任務一起執行
2.多任務的實現方式
2.1 線程
2.2 進程
2.3 協程
3.線程
3.1 線程是操作系統中的最小的執行單元
3.2 在一個進程內的所有線程共享全局變量
3.3 因爲全局解釋器鎖的緣故,python中的多線程是一個僞多線程
3.4 GIL(Global Interpreter Lock,全局解釋器) :python中爲了解決多線程之間的數據的完整性和狀態同步問題的準備的鎖
4.線程同步
4.1 爲什麼進行線程同步
如果多個線程同時對同一個全局變量操作,會出現資源競爭的問題,導致數據錯誤,爲了解決這個問題,需要進行線程同步
4.2 什麼是線程同步
線程同步是多個線程按先後順序執行。實現線程同步則需要引入鎖的機制
4.3 什麼是互斥鎖
互斥鎖:在線程執行時對資源加互斥鎖,使得其他線程無法操作資源,直到該線程釋放資源後,將鎖打開,其他線程才能對資源進行操作。
4.4 什麼是死鎖
死鎖是多個線程共享資源時,幾個線程分別佔有一部分資源並且等待其他線程的資源時,就會造成死鎖。
5.進程
5.1 進程是操作系統中的最小資源分配單元。
5.2 一個程序中至少擁有一個進程,一個進程至少擁有一個線程
5.3 同一進程中的線程數據共享
5.4 每一個進程擁有獨立的內存空間