协程

协程:是单线程下的并发,又称微线程

(1)线程由操作系统控制调度;协程由应用程序级别控制调度

(2)协程的切换开销更小,属于程序级别的切换,操作系统完全感知不到。

(3)协程是指单个线程,无法利用多核

*一个程序开启多个进程,每个进程开启多个线程,每个线程开启多个协程*

import gevent
def eat(name):
    print('%s eat 1' %name)
    gevent.sleep(2)
    print('%s eat 2' %name)

def play(name):
    print('%s play 1' %name)
    gevent.sleep(1)
    print('%s play 2' %name)
if __name__=="__main__":
    g1=gevent.spawn(eat,"egon")
    g2=gevent.spawn(play,"egon")
    g1.join()
    g2.join()
    print("")
'''
egon eat 1
egon play 1
egon play 2
egon eat 2
主
'''

 

from gevent import monkey;monkey.patch_all()
import time
def eat(name):
    print('%s eat 1' %name)
    time.sleep(2)
    print('%s eat 2' %name)

def play(name):
    print('%s play 1' %name)
    time.sleep(1)
    print('%s play 2' %name)
if __name__=="__main__":
    g1=gevent.spawn(eat,"egon")
    g2=gevent.spawn(play,"egon")
    g1.join()
    g2.join()
    print("")
'''
egon eat 1
egon play 1
egon play 2
egon eat 2
主
'''

 

posted on 2020-03-29 11:09  happygril3  阅读(130)  评论(0)    收藏  举报

导航