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