最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python eventlet綠化和patch原理

 更新時(shí)間:2020年11月21日 17:31:41   作者:妙音  
這篇文章主要介紹了python eventlet綠化和patch原理,幫助大家更好的理解和學(xué)習(xí)python eventlet工具的使用,感興趣的朋友可以了解下

說明

eventlet是一個(gè)必備工具,經(jīng)常用,綠化原理有點(diǎn)忘記了,重新復(fù)習(xí)一遍.

三個(gè)主要問題 

1. 綠化的原理是什么?
2. 綠化怎么管理?
3. 綠化怎么引入?

綠化原理

利用select/epolls/kqueue等操作系統(tǒng)提供的非阻塞操作,將阻塞改為非阻塞.

引用管理 

eventlet在import之后,將模塊中的屬性綠化.
用一小段代碼來查看看

import sys
import eventlet
# eventlet.monkey_patch()
 
httplib2 = eventlet.import_patched('httplib2')
print(httplib2)
print(httplib2.socket)
 
print("================")
for k,v in sys.modules.items():
  if "socket" in k:
    print(k, v)
 
 
# 打印內(nèi)容
<module 'httplib2' from 'D:\\workspace\\venv\\xxx\\lib\\site-packages\\httplib2\\__init__.py'>
<module 'eventlet.green.socket' from 'D:\\workspace\\venv\\xxx\\lib\\site-packages\\eventlet\\green\\socket.py'>
================
_socket <module '_socket' from 'c:\\python\\python36\\DLLs\\_socket.pyd'>
socket <module 'socket' from 'c:\\python\\python36\\lib\\socket.py'>
__original_module_socket <module 'socket' from 'c:\\python\\python36\\lib\\socket.py'>
 
# 說明了什么?
綠化只是替換httplib2模塊中的引用屬性socket。并未改變sys.modules中的屬性

引入綠化方法一:直接import

from eventlet.green import socket

引入綠化方法二:eventlet.import_patch 

1.好處: 能綠化模塊內(nèi)部的系統(tǒng)模塊
2.只能綠化os, select, socket, thread, time, psycopy, MySQLdb, bultines, subprocess
3.如果是import threading,不會(huì)自動(dòng)綠化, 需要from eventlet.green import threading

import eventlet
httplib2 = eventlet.import_patched('httplib2')
print(httplib2)
print(httplib2.socket)
 
# 打印
<module 'httplib2' from 'D:\\workspace\\venv\\autumn-secs\\lib\\site-packages\\httplib2\\__init__.py'>
<module 'eventlet.green.socket' from 'D:\\workspace\\venv\\autumn-secs\\lib\\site-packages\\eventlet\\green\\socket.py'>

引入綠化方法三:eventlet.monkey_patch

1.與import_patch不同,會(huì)直接修改sys.modules
2.但是也只能綠化os,select等等幾個(gè)模塊,其它模塊需要用直接引用綠化

以上就是python eventlet綠化和patch原理的詳細(xì)內(nèi)容,更多關(guān)于python eventlet的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

最新評(píng)論

荔波县| 会泽县| 敦煌市| 陆川县| 天津市| 南京市| 收藏| 马鞍山市| 衡阳县| 武胜县| 长治县| 新绛县| 霍州市| 奈曼旗| 称多县| 金堂县| 博白县| 大田县| 通化县| 工布江达县| 孟连| 曲松县| 英德市| 沾化县| 凌源市| 班戈县| 新干县| 安国市| 成安县| 临颍县| 阿坝| 北海市| 本溪市| 彭山县| 锡林浩特市| 亚东县| 永和县| 平邑县| 景泰县| 开封县| 大足县|