Pythonのライブラリの研究ノートを使用して--gevent

測定geventライブラリを使用して、メインの共有の基本とコード。同期プログラミングにおける非同期プログラミングのためのgeventライブラリをしてみましょう。またはコードに、自分自身のプロのテスト!

1つの#は/ usr / binに/!のenv pythonの
 2# - * -コーディング:UTF- 8 - * -
 3#@Date:2020年までに - 03 - 01  135903 
4#@Author:Flyinghappy(671474 @ qq.com )
 5#@linkます。https:// www.cnblogs.com/flyinghappy/ 
6  #@Version:$イド$
 7  からgeventインポートサル
 8  monkey.patch_all()
 9  インポートgevent
 10  インポート時間
 11  インポートasyncio
 12 インポート要求
 13  urllib.requestインポート
 14  :DEF runinfo(FUNC)
 15      DEF内(*引数、** kwargsから):
 16          プリント(' 开始访问--- ' + STR(引数[ 0 ])+ ' --- ' + STR(引数[ 1 ]))
 17          START_TIME = time.time()
 18          結果= FUNC(*引数、** kwargsから)
 19          STOP_TIME = time.time()
 20          プリント(FUNC .__名__ + ' -----時間-runningことである:%S '%(stop_time- START_TIME))
 21         印刷(' 结束访问--- ' + STR(引数[ 0 ])+ ' --- ' + STR(引数[ 1 ]))
 22          リターン結果
 23      リターンインナー
 24  @runinfo
 25  デフtaskfun(URL、N):
 26      HTML = urllib.request.urlopen(URL).read()
 27      戻りHTML
 28  DEF async_main():  
 29      URL = [
 30      ' http://www.sina.com.cn ' 31      ' のhttp:// WWW .cnr.cn " 32     ' http://www.hao123.com ' 33      ' http://www.taobao.com ' 34      ' https://www.eastmoney.com ' 
35      ]
 36      START_TIME = time.time()
 37      g_list = []
 38      のための I における範囲(LEN(URL)):
 39          G = gevent.spawn(taskfun、URL [i]は、I)
 40          g_list.append(G)
 41      gevent.joinall(g_list)
 42      STOP_TIME = time.time ()
 43      プリント(主---実行時刻:%sの'%(stop_time- START_TIME))
 44  なら __name__ == ' __main__ ' 45      async_main()
コードの表示

カザフスタンを比較し、以下の2つのグラフ注意:コードのテストの結果は、スクリーンショットを見てください。上記のコードは、非同期処理の機能を実現します。

 

 

 

 注意:

gevent輸入サルから
monkey.patch_all()

このコードは、すべてのコードとカザフスタンの上に配置する必要があります。モンキーパッチも上である必要があります!それ以外の場合は同期され、同時なし効果!

あなたは、ネストされたgeventを使用しようとすることができます!私たちは、同時の効果を達成できるかどうか!

おすすめ

転載: www.cnblogs.com/flyinghappy/p/12397341.html