线程是操作系统调度的单位
进程切换需要的资源大,效率低
线程切换需要的资源一般,效率一般
协程切换需要的资源很小,效率高
协程在一个线程中
线程是系统级别的,它们是由操作系统调度;协程是程序级别的,由程序员根据需要自己调度。一个线程中的一个个函数叫做子程序,那么子程序在执行过程中可以中断去执行别的子程序;别的子程序也可以中断回来继续执行之前的子程序,这就是协程。
协程,自动切换
点击(此处)折叠或打开
- import threading
- import gevent,time
- from gevent import monkey#导入monkey补丁包
- monkey.patch_all()#打补丁为了支持time.sleep
- def test1():
- for i in range(5):
- time.sleep(1)
- print('test1', i)
- def test2():
- for i in range(5):
- time.sleep(2)
- print('test2', i)
- g1 = gevent.spawn(test1)
- g2 = gevent.spawn(test2)
- g1.join()
- g2.join()
- print(threading.enumerate())