协程,gevent模块

  • 多进程,每启动一个程序单开一块空间,单分配一些资源
  • 多线程,在一个进程里面开多个线程,让多个线程同时工作,操作系统控制线程
    • 对IO操作阻塞感知能力强
  • 多协程,在一个线程,跑多个任务,程序控制协程
    • 程序是别人写好的模块,所以感知IO操作阻塞能力差
  • gevent可以实现,当函数遇到IO操作(阻塞)时,就可以自动切换到另一个函数中
    • g1 = gevent.spawn(func,参数)
      g1.join() 让func函数执行完毕
      gevent.join([g1,g2,g3]) 多个函数可以用joinall,放入可迭代对象
    • gevent只识别自己的IO操作,不识别其他的IO操作
      • 解决办法 from gevent import monkey
        monkey.patch_all()
  • 进程,线程,协程的对比27.进程、线程、协程对比 (itprojects.cn)
  • 性能测试的本质是并发
  •  
posted @ 2023-05-13 20:00  3notblv  阅读(37)  评论(0)    收藏  举报