亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

協(xié)程雖然是輕量級(jí)的線程,但到達(dá)一定數(shù)量后,仍然會(huì)造成服務(wù)器崩潰出錯(cuò)。最好的方法通過限制協(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()運(yùn)行協(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ù)量;所以客戶端同時(shí)并發(fā)連接數(shù)超過服務(wù)器端并發(fā)數(shù)量,就會(huì)引發(fā)連接錯(cuò)誤信息:

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] 遠(yuǎn)程主機(jī)強(qiáng)迫關(guān)閉了一個(gè)現(xiàn)有的連接。

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

相關(guān)文章

  • Python3.5集合及其常見運(yùn)算實(shí)例詳解

    Python3.5集合及其常見運(yùn)算實(shí)例詳解

    這篇文章主要介紹了Python3.5集合及其常見運(yùn)算,結(jié)合實(shí)例形式分析了Python3.5集合的定義、功能、交集、并集、差集等常見操作技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2019-05-05
  • Python?numpy邏輯運(yùn)算方法舉例介紹

    Python?numpy邏輯運(yùn)算方法舉例介紹

    這篇文章主要介紹了Python?numpy邏輯運(yùn)算方法的相關(guān)資料,NumPy中提供了一系列邏輯運(yùn)算方法,用于執(zhí)行逐元素的邏輯和比較操作,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • TensorFlow實(shí)現(xiàn)AutoEncoder自編碼器

    TensorFlow實(shí)現(xiàn)AutoEncoder自編碼器

    這篇文章主要為大家詳細(xì)介紹了TensorFlow實(shí)現(xiàn)AutoEncoder自編碼器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • Python實(shí)現(xiàn)簡(jiǎn)單遺傳算法(SGA)

    Python實(shí)現(xiàn)簡(jiǎn)單遺傳算法(SGA)

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)簡(jiǎn)單遺傳算法SGA,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 夯實(shí)基礎(chǔ)python集合的應(yīng)用場(chǎng)景及字符串定義和表示

    夯實(shí)基礎(chǔ)python集合的應(yīng)用場(chǎng)景及字符串定義和表示

    這篇文章主要為大家介紹了python集合的應(yīng)用場(chǎng)景及字符串定義和表示,來幫大家夯實(shí)基礎(chǔ),有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2023-10-10
  • Python整數(shù)對(duì)象實(shí)現(xiàn)原理詳解

    Python整數(shù)對(duì)象實(shí)現(xiàn)原理詳解

    這篇文章主要介紹了Python整數(shù)對(duì)象實(shí)現(xiàn)原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-07-07
  • DataFrame里的replace替換方式

    DataFrame里的replace替換方式

    這篇文章主要介紹了DataFrame里的replace替換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 詳解python __init__.py 和 __all__作用

    詳解python __init__.py 和 __all__作用

    導(dǎo)入文件夾包的時(shí)候,會(huì)運(yùn)行寫在該文件夾包下的__init__.py文件,這主要是__init__.py的作用,本文結(jié)合示例代碼介紹了python __init__.py 和 __all__作用,感興趣的朋友一起看看吧
    2023-02-02
  • matplotlib基礎(chǔ)繪圖命令之bar的使用方法

    matplotlib基礎(chǔ)繪圖命令之bar的使用方法

    這篇文章主要介紹了matplotlib基礎(chǔ)繪圖命令之bar的使用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 利用python微信庫itchat實(shí)現(xiàn)微信自動(dòng)回復(fù)功能

    利用python微信庫itchat實(shí)現(xiàn)微信自動(dòng)回復(fù)功能

    最近發(fā)現(xiàn)了一個(gè)特別好玩的Python 微信庫itchat,可以實(shí)現(xiàn)自動(dòng)回復(fù)等多種功能,下面這篇文章主要給大家介紹了利用python微信庫itchat實(shí)現(xiàn)微信自動(dòng)回復(fù)功能的相關(guān)資料,需要的朋友可以參考學(xué)習(xí),下面來一起看看吧。
    2017-05-05

最新評(píng)論