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

python eventlet綠化和patch原理

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

說(shuō)明

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

三個(gè)主要問(wèn)題 

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

綠化原理

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

引用管理 

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

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'>
 
# 說(shuō)明了什么?
綠化只是替換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)論

逊克县| 富顺县| 闵行区| 伊吾县| 平江县| 彝良县| 右玉县| 行唐县| 崇明县| 昌平区| 蓬安县| 五华县| 美姑县| 新安县| 全椒县| 农安县| 自贡市| 淳安县| 华池县| 德阳市| 郎溪县| 巴青县| 穆棱市| 资阳市| 磐石市| 鹿邑县| 竹溪县| 靖江市| 西充县| 胶南市| 宁乡县| 宁晋县| 墨脱县| 永嘉县| 哈尔滨市| 定远县| 夏邑县| 万全县| 曲水县| 玉环县| 赣榆县|