学习笔记(27):Python网络编程并发编程-GIL与多线程
生活随笔
收集整理的這篇文章主要介紹了
学习笔记(27):Python网络编程并发编程-GIL与多线程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
立即學習:https://edu.csdn.net/course/play/24458/296444?utm_source=blogtoedu
GIL與多線程
?
1.須知:
1)cpu主要是為了提升計算性能,增加CPU提升計算性能;
2)每一個CPU一旦遇到阻塞狀態都會處于等待狀態,因此對于I/O阻塞來說,多核CPU就等于是擺設
3)同一時間,同一個進程只能有一個線程在執行,由于GIL
4)進程是操作系統分配儲備資源的最小單位;線程是操作系統調度的最小單位
?
2.I/O密集型與計算密集型
1)I/O密集型:一直在執行CPU,中間有等待的過程,這個就叫做I/O密集型,如sleep
2)計算密集型:中間沒有等待的過程,代碼自上而下地運行
?
3.對于多核CPU來說:
1)計算密集型:多進程效率高,因為python中無法進行多線程由于GIL,同一時間同一進程只有一個線程在執行,因此采用多進程會有并發的效果,效率高。
2)I/O密集型:多線程效率高,因為多進程的開銷大,創建進程的時間長,且I/O密集型有阻塞狀態,多進程不如多線程的切換速度快,因此多線程來處理I/O密集型問題會效率更高
?
總結
以上是生活随笔為你收集整理的学习笔记(27):Python网络编程并发编程-GIL与多线程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 十款乐高积木虚拟搭建软件,乐高仿真工具,
- 下一篇: 兰勃特等角圆锥(Lambert Conf