PythonStudy——gevent 协程

本文介绍了一种使用Python的gevent库实现协程的方法。通过打上monkey补丁,可以轻松地将阻塞调用变为非阻塞性,从而实现并发执行多个任务。示例代码展示了如何创建和管理协程,以及如何等待所有协程任务完成。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

# 实现协程的第二种方式
# 利用gevent 打上monkey补丁
from gevent import monkey
monkey.patch_all()
import gevent
import time
from threading import current_thread,enumerate


def task1():
    print(current_thread(),111)
    print("task1 start ...")
    time.sleep(3)
    print("task1 over ...")

def task2():
    print(current_thread(),222)
    print("task2 start ...")
    time.sleep(1)
    print("task2 over ...")

# spawn用于创建一个协程任务
g1 = gevent.spawn(task1)
g2 = gevent.spawn(task2)


# 任务要执行,必须保证主线程没挂  因为所有协程任务都是主线在执行   ,必须调用join来等待协程任务
# g1.join()
# g2.join()
# 理论上等待执行时间最长的任务就行 , 但是不清楚谁的时间长 可以全部join

gevent.joinall([g1,g2])
print("任务结束...")

 

转载于:https://www.cnblogs.com/tingguoguoyo/p/10990787.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值