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

python3通過gevent.pool限制協(xié)程并發(fā)數(shù)量的實現(xiàn)方法

 更新時間:2021年09月06日 11:14:37   作者:chengd  
這篇文章主要介紹了python3通過gevent.pool限制協(xié)程并發(fā)數(shù)量的實現(xiàn)方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

協(xié)程雖然是輕量級的線程,但到達一定數(shù)量后,仍然會造成服務(wù)器崩潰出錯。最好的方法通過限制協(xié)程并發(fā)數(shù)量來解決此類問題。

server代碼:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author        : Cain
# @Email         : 771535427@qq.com
# @Filename      : gevnt_sockserver.py
# @Last modified : 2017-11-24  16:31
# @Description   :

import sys
import socket
import time
import gevent
from gevent import socket,monkey,pool    #導(dǎo)入pool
monkey.patch_all()

def server(port, pool):
    s = socket.socket()
    s.bind(('0.0.0.0', port))
    s.listen()
    while True:
        cli, addr = s.accept()
        #print("Welcome %s to SocketServer" % str(addr[0]))
        pool.spawn(handle_request, cli)    #通過pool.spawn()運行協(xié)程

def handle_request(conn):
    try:
        data = conn.recv(1024)
        print("recv:", data)
        data = 'From SockeServer:192.168.88.118---%s' % data.decode("utf8")
        conn.sendall(bytes(data, encoding="utf8"))
        if not data:
            conn.shutdown(socket.SHUT_WR)
    except Exception as ex:
        print(ex)
    finally:
        conn.close()

if __name__ == '__main__':
    pool = pool.Pool(5)    #限制并發(fā)協(xié)程數(shù)量5
    server(8888, pool)

client(通過gevent模擬并發(fā)數(shù)量):

import socket
import gevent
from gevent import socket, monkey
from gevent.pool import Pool
import time

monkey.patch_all()

HOST = '192.168.88.118'
PORT = 8888
def sockclient(i):
    #time.sleep(2)
    s = socket.socket()
    s.connect((HOST, PORT))
    #print(gevent.getcurrent())
    msg = bytes(("This is gevent: %s" % i),encoding="utf8")
    s.sendall(msg)
    data = s.recv(1024)
    print("Received", data.decode())

    s.close()

pool = Pool(5)
threads = [pool.spawn(sockclient, i) for i in range(2000)]
gevent.joinall(threads)

由于服務(wù)器限制連接并發(fā)數(shù)量;所以客戶端同時并發(fā)連接數(shù)超過服務(wù)器端并發(fā)數(shù)量,就會引發(fā)連接錯誤信息:

Exception in thread Thread-849:
Traceback (most recent call last):
  File "C:\Users\admin\AppData\Local\Programs\Python\Python36\lib\threading.py", line 916, in _bootstrap_inner
    self.run()
  File "C:\Users\admin\AppData\Local\Programs\Python\Python36\lib\threading.py", line 864, in run
    self._target(*self._args, **self._kwargs)
  File "E:/chengd/python/python3/matp/die/geven_sockclient.py", line 26, in sockclient
    data = s.recv(1024)
ConnectionResetError: [WinError 10054] 遠程主機強迫關(guān)閉了一個現(xiàn)有的連接。

到此這篇關(guān)于python3通過gevent.pool限制協(xié)程并發(fā)數(shù)量的文章就介紹到這了,更多相關(guān)python3協(xié)程并發(fā)數(shù)量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解python中自定義超時異常的幾種方法

    詳解python中自定義超時異常的幾種方法

    這篇文章主要介紹了詳解python中自定義超時異常的幾種方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-07-07
  • python如何對實例屬性進行類型檢查

    python如何對實例屬性進行類型檢查

    這篇文章主要為大家詳細介紹了python如何對實例屬性進行類型檢查,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Pandas中字符串和時間轉(zhuǎn)換與格式化的實現(xiàn)

    Pandas中字符串和時間轉(zhuǎn)換與格式化的實現(xiàn)

    本文主要介紹了Pandas中字符串和時間轉(zhuǎn)換與格式化的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01
  • python 常見字符串與函數(shù)的用法詳解

    python 常見字符串與函數(shù)的用法詳解

    這篇文章主要介紹了python 常見字符串與函數(shù)的用法,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-11-11
  • Python利用matplotlib繪制圓環(huán)圖(環(huán)形圖)的實戰(zhàn)案例

    Python利用matplotlib繪制圓環(huán)圖(環(huán)形圖)的實戰(zhàn)案例

    環(huán)形圖也被稱為圓環(huán)圖,它在功能上與餅圖相同,只是中間有一個空白,并且能夠同時支持多個統(tǒng)計數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Python利用matplotlib繪制圓環(huán)圖的實戰(zhàn)案例,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • Python之集合詳解

    Python之集合詳解

    今天小編就為大家分享一篇關(guān)于Python中的集合介紹,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2021-09-09
  • python?Opencv實現(xiàn)停車位識別思路詳解

    python?Opencv實現(xiàn)停車位識別思路詳解

    這篇文章主要介紹了Opencv實現(xiàn)停車位識別,本文通過示例代碼場景分析給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • 解決pandas .to_excel不覆蓋已有sheet的問題

    解決pandas .to_excel不覆蓋已有sheet的問題

    今天小編就為大家分享一篇解決pandas .to_excel不覆蓋已有sheet的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12
  • pycharm使用Translation插件實現(xiàn)翻譯功能

    pycharm使用Translation插件實現(xiàn)翻譯功能

    PyCharm是一款很流行的Python編輯器,經(jīng)常遇到在PyCharm中把中文翻譯成英文的需求,下面這篇文章主要給大家介紹了關(guān)于pycharm使用Translation插件實現(xiàn)翻譯功能的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • Python語言實現(xiàn)獲取主機名根據(jù)端口殺死進程

    Python語言實現(xiàn)獲取主機名根據(jù)端口殺死進程

    這篇文章主要介紹了Python語言實現(xiàn)獲取主機名根據(jù)端口殺死進程的相關(guān)資料,需要的朋友可以參考下
    2016-03-03

最新評論

贵南县| 兴化市| 西丰县| 来宾市| 海南省| 桃园县| 涞水县| 化州市| 霸州市| 武穴市| 高邑县| 德州市| 蓬安县| 岐山县| 平顶山市| 奈曼旗| 洪江市| 福海县| 田东县| 玛曲县| 镇江市| 治县。| 屯昌县| 望谟县| 阿瓦提县| 收藏| 丽水市| 九寨沟县| 洞头县| 蒙城县| 九龙坡区| 叙永县| 陆良县| 会东县| 鹤山市| 三亚市| 卢氏县| 崇仁县| 尖扎县| 来凤县| 京山县|