协程 :协程是微线程,纤程,本质是一个单线程
协程能在单线程处理高并发,因为遇到 I/O 自动切换,线程遇到 I/O 操作会等待、阻塞。
协程的优缺点:
缺点 : 缺点是无法利用多核资源,本质是单核的,它不能同时将单个CPU的多个核用上,协程需要和进程配合才能运行在多CPU上。
优点: 不仅是处理高并发(单线程下处理高并发),还特别节省资源(协程的本质是一个单线程,当然节省空间)。
为什么协程能够遇到 I/O 自动切换 ?
greenlet是C语言写的一个模块,遇到 I/O 手动切换,协程有一个gevent模块,封装了greenle模块,遇到 I/O自动切换。
gevent :
gevent只用起一个线程,当请求发出去后 gevent就不管,永远就只有一个线程工作,谁先回来谁先处理