Python gevent高并发(限制最大并发数、协程池)
生活随笔
收集整理的這篇文章主要介紹了
Python gevent高并发(限制最大并发数、协程池)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實例源碼
import time import gevent from gevent.pool import Pool from gevent import monkey monkey.patch_all()class ABC(object):def __init__(self):# 一,限制最大并發數self.p = Pool(20)self.results = Noneself.num = 5# 二,導入gevent猴子補丁,沒有它,協稱就不會并發執行# 三,耗時任務或者阻塞任務,異步執行的或者需要并發的就是它了def task(self, i, num):time.sleep(i)self.num += 1self.results = self.numprint("sum = {}".format(self.num))def run(self):time_l=time.time()# 四,任務派發,將15個任務派發給攜程去做threads = [self.p.spawn(self.task, 5, self.num) for i in range(40)]# 五,在此阻塞,等所有協程全部完成退出,這一步才執行完gevent.joinall(threads)time_r=time.time()print("總耗時:{}".format(time_r-time_l))if __name__ == "__main__":abc = ABC()abc.run()print(abc.results)結果:
sum = 6 sum = 7 sum = 8 sum = 9 sum = 10 sum = 11 sum = 12 sum = 13 sum = 14 sum = 15 sum = 16 sum = 17 sum = 18 sum = 19 sum = 20 sum = 21 sum = 22 sum = 23 sum = 24 sum = 25 sum = 26 總耗時:15.019743204116821 26?
總結
以上是生活随笔為你收集整理的Python gevent高并发(限制最大并发数、协程池)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: VulnHub靶机系列:Os-ByteS
- 下一篇: zmq 接口函数之 :zmq_socke