使用grrenletgevent实现多任务

Posted kuraki

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用grrenletgevent实现多任务相关的知识,希望对你有一定的参考价值。

from greenlet import greenlet
import time

def test1():
    while True:
        print(----A----)
        g2.switch()
        time.sleep(0.5)

def test2():
    while True:
        print(----B----)
        g1.switch()
        time.sleep(0.5)

g1 = greenlet(test1)
g2 = greenlet(test2)
g1.switch()

 

import gevent,time
from gevent import monkey; monkey.patch_all()

def f1(n):
    for i in range(n):
        print(gevent.getcurrent(),i)
        time.sleep(0.1)
def f2(n):
    for i in range(n):
        print(gevent.getcurrent(),i)
        time.sleep(0.1)
def f3(n):
    for i in range(n):
        print(gevent.getcurrent(),i)
        time.sleep(0.1)

# g1 = gevent.spawn(f1,5)
# g2 = gevent.spawn(f2,5)
# g3 = gevent.spawn(f3,5)
# g1.join()
# g2.join()
# g3.join()
gevent.joinall([gevent.spawn(f1,5),
                gevent.spawn(f2,5),
                gevent.spawn(f3,5)])

 

以上是关于使用grrenletgevent实现多任务的主要内容,如果未能解决你的问题,请参考以下文章

代码片段:Shell脚本实现重复执行和多进程

多线程 Thread 线程同步 synchronized

需要示例代码片段帮助

什么是Java多线程编程?

多个用户访问同一段代码

多个请求是多线程吗