python(33)-高并发-协程-Gevent

    协程:实现单线程下的高并发。
    例如web高并发服务器,Nginx,nodejs,其实都是单线程,而如何实现上万的高并发呢,用的就是协程。
    个人理解,协程快就是无论你启动了几个函数,整个程序的运行时长=最长的那个函数时长

    gevent 下载地址https://www.lfd.uci.edu/~gohlke/pythonlibs/#gevent 

"""
1.运行时间:
  整个程序,无论你启动几个函数,运行花费 只用了函数中最长的那个时间 2s

2.运行的过程
" 1 run in func1"
" 3 run in func2"

" 5 run in func3"
" 6 run in func3"

" 4 run in func2"
" 2 run in func1'



"""


import gevent


def func1():
    print(" 1 run in func1")
    gevent.sleep(2)               #为什么不是time.sleep 而是gevent.sleep?模仿io切换
    print('2 run in func1')


def func2():
    print(" 3 run in func2")
    gevent.sleep(1)               
    print(" 4 run in func2")

def func3():
    print(" 5 run in func3")
    gevent.sleep(0)              
    print(" 6 run in func3")

#启动了3个协程 列表的形式 spawn启动一个协程
gevent.joinall([
    gevent.spawn(func1),#生成
    gevent.spawn(func2),
   gevent.spawn(func3),
])


 

 

posted @ 2020-04-06 11:34  jasmineTang  阅读(94)  评论(0)    收藏  举报