當前位置:
首頁 >
网络概念小结
發布時間:2025/7/14
40
豆豆
什么是進程?
就是為了形容執行中的程序的一種稱呼
它是操作系統中資源分配的最小單位
進程之間是數據隔離的,占用操作系統資源相對多
獨立存在的
談談對并發的理解?
同時有多個任務需要執行但是資源有限
所以我們會利用一些手段:多進程\多線程\協程來完成任務
來提高用戶體驗,達到多個任務在同一個時間段內同時執行的效果
什么是線程?
輕量級進程,直接被CPu調用,不能獨立存在的輕量級進程
同一進程中的多個線程之間數據共享
你對GIL的理解?
全局解釋器鎖,是用來鎖線程的,Cpython解釋器提供的
導致了同一時刻只能有一個線程訪問Cpu
是一個歷史遺留問題
你對異步非阻塞的理解?
異步:一個任務的執行不需要等待另個任務的結束
非阻塞: 沒有阻塞
設置非阻塞(socket對象調用setblocking(False))
什么是協程?
協程是用戶級的,對操作系統不可見
使用戶為了提高一條線程對CPU的利用率才出現的概念
協程能實現一條線程上的多個任務相互切換
為了提高效率,用戶可以控制協程在一個任務中遇到IO就切換另一個任務
協程和線程比起來?
協程不存在數據不安全問題
協程不能處分利用多核
但是線程在Cpython解釋器下實際上也不能利用多核
所以相對來說,協程實際上在python中是更好的工具
什么是IO多路復用?
操作系統提供的代理,監聽網絡對象的IO操作
常見的IO多路復用機制?
select:輪詢的方式獲取每個對象的狀態
poll:底層數據結構與select不同,進行了優化,能夠儲存更多的對象,也是輪詢的方式
epoll:不采用輪詢的方式來獲取每個對象的狀態,而是采用回調函數的方式,
所以wait for data 階段 一收到數據就可以立即通知應用程序
提高了效率,也減輕了操作系統的負擔
就是為了形容執行中的程序的一種稱呼
它是操作系統中資源分配的最小單位
進程之間是數據隔離的,占用操作系統資源相對多
獨立存在的
談談對并發的理解?
同時有多個任務需要執行但是資源有限
所以我們會利用一些手段:多進程\多線程\協程來完成任務
來提高用戶體驗,達到多個任務在同一個時間段內同時執行的效果
什么是線程?
輕量級進程,直接被CPu調用,不能獨立存在的輕量級進程
同一進程中的多個線程之間數據共享
你對GIL的理解?
全局解釋器鎖,是用來鎖線程的,Cpython解釋器提供的
導致了同一時刻只能有一個線程訪問Cpu
是一個歷史遺留問題
你對異步非阻塞的理解?
異步:一個任務的執行不需要等待另個任務的結束
非阻塞: 沒有阻塞
設置非阻塞(socket對象調用setblocking(False))
什么是協程?
協程是用戶級的,對操作系統不可見
使用戶為了提高一條線程對CPU的利用率才出現的概念
協程能實現一條線程上的多個任務相互切換
為了提高效率,用戶可以控制協程在一個任務中遇到IO就切換另一個任務
協程和線程比起來?
協程不存在數據不安全問題
協程不能處分利用多核
但是線程在Cpython解釋器下實際上也不能利用多核
所以相對來說,協程實際上在python中是更好的工具
什么是IO多路復用?
操作系統提供的代理,監聽網絡對象的IO操作
常見的IO多路復用機制?
select:輪詢的方式獲取每個對象的狀態
poll:底層數據結構與select不同,進行了優化,能夠儲存更多的對象,也是輪詢的方式
epoll:不采用輪詢的方式來獲取每個對象的狀態,而是采用回調函數的方式,
所以wait for data 階段 一收到數據就可以立即通知應用程序
提高了效率,也減輕了操作系統的負擔
轉載于:https://www.cnblogs.com/systemsystem/p/10119658.html
總結
- 上一篇: undo系统参数详解
- 下一篇: docker开机启动和docker-co