欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python eventlet綠化和patch原理

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

說明

eventlet是一個必備工具,經(jīng)常用,綠化原理有點忘記了,重新復習一遍.

三個主要問題 

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,不會自動綠化, 需要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不同,會直接修改sys.modules
2.但是也只能綠化os,select等等幾個模塊,其它模塊需要用直接引用綠化

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

相關文章

  • pytorch模型存儲的2種實現(xiàn)方法

    pytorch模型存儲的2種實現(xiàn)方法

    今天小編就為大家分享一篇pytorch模型存儲的2種實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • Python函數(shù)裝飾器常見使用方法實例詳解

    Python函數(shù)裝飾器常見使用方法實例詳解

    這篇文章主要介紹了Python函數(shù)裝飾器常見使用方法,結合實例形式分析了Python函數(shù)裝飾器的概念、原理、用法及相關操作注意事項,需要的朋友可以參考下
    2019-03-03
  • 分享python機器學習中應用所產(chǎn)生的聚類數(shù)據(jù)集方法

    分享python機器學習中應用所產(chǎn)生的聚類數(shù)據(jù)集方法

    本文根據(jù) 機器學習中常用的聚類數(shù)據(jù)集生成方法 中的內(nèi)容進行編輯實驗和整理而得,有需要的朋友可以參考想,希望可以對大家在聚類數(shù)據(jù)方面有所幫助
    2021-08-08
  • web自動化測試Selenium點擊元素的常用方法

    web自動化測試Selenium點擊元素的常用方法

    在Web自動化測試中,Selenium提供多種點擊方法,常用的click()方法通過選中元素并觸發(fā)點擊事件,若click()方法不穩(wěn)定,可以采用JavaScript執(zhí)行點擊或使用ActionChains類模擬鼠標點擊,需要的朋友可以參考下
    2024-09-09
  • Python基于百度云文字識別API

    Python基于百度云文字識別API

    這篇文章主要介紹了Python基于百度云文字識別API,用Python實現(xiàn)最簡單的文字識別,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • django中顯示字符串的實例方法

    django中顯示字符串的實例方法

    在本篇文章里小編給大家整理了一篇關于django中顯示字符串的實例方法,有興趣的朋友們可以跟著學習參考下。
    2021-03-03
  • Python使用itertools模塊實現(xiàn)排列組合功能示例

    Python使用itertools模塊實現(xiàn)排列組合功能示例

    這篇文章主要介紹了Python使用itertools模塊實現(xiàn)排列組合功能,涉及Python基于itertools模塊product、permutations與combinations_with_replacement方法進行排列、組合等相關操作實現(xiàn)技巧,需要的朋友可以參考下
    2018-07-07
  • python使用PyGame模塊播放聲音的方法

    python使用PyGame模塊播放聲音的方法

    這篇文章主要介紹了python使用PyGame模塊播放聲音的方法,實例分析了PyGame模塊的使用技巧,需要的朋友可以參考下
    2015-05-05
  • Python+OpenCV實現(xiàn)角度測量的示例代碼

    Python+OpenCV實現(xiàn)角度測量的示例代碼

    本文介紹如何使用python語言實現(xiàn)角度測量,程序包括鼠標選點、直線斜率計算、角度計算三個子程序和一個主程序,感興趣的可以了解一下
    2022-03-03
  • 教你怎么用python實現(xiàn)字符串轉日期

    教你怎么用python實現(xiàn)字符串轉日期

    今天教各位小伙伴怎么用python實現(xiàn)字符串轉日期,文中有非常詳細的代碼示例,對正在學習python的小伙伴很有幫助,需要的朋友可以參考下
    2021-05-05

最新評論