Python3-gevent模块-单线程下的"并发"-协程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python3-gevent模块-单线程下的"并发"-协程相关的知识,希望对你有一定的参考价值。

博客转载

  http://www.cnblogs.com/alex3714/articles/5248247.html

  http://www.cnblogs.com/tkqasn/p/5705338.html

代码示例

技术分享
import greenlet


def func1():
    print(1)
    gr2.switch()
    print(1)
    gr2.switch()


def func2():
    print(2)
    gr3.switch()
    print(2)
    gr3.switch()


def func3():
    print(3)
    gr1.switch()
    print(3)
    gr1.switch()

# greenlet可以实现函数间的任意中断切换执行
gr1 = greenlet.greenlet(func1)
gr2 = greenlet.greenlet(func2)
gr3 = greenlet.greenlet(func3)
gr1.switch()
greenlet

技术分享
import gevent


def func1():
    print(1)
    gevent.sleep()
    print(1)


def func2():
    print(2)
    gevent.sleep(1)
    print(2)


def func3():
    print(3)
    gevent.sleep()
    print(3)


# gevent封装了greenlet,可以通过sleep()交出控制权,实现协程
gevent.joinall([
    gevent.spawn(func1),
    gevent.spawn(func2),
    gevent.spawn(func3)
])
gevent

 

以上是关于Python3-gevent模块-单线程下的"并发"-协程的主要内容,如果未能解决你的问题,请参考以下文章

python全栈脱产第37天------进程池与线程池协程gevent模块单线程下实现并发的套接字通信

缓存数据库Redis之四:单线程下的一些事

缓存数据库Redis之四:单线程下的一些事

缓存数据库Redis之四:单线程下的一些事

缓存数据库Redis之四:单线程下的一些事

gevent 实现单线程下的socket链接