并发篇-python协程-2

2019-07-18 11:00:52 浏览数 (3)

遇到阻塞就切换到另一个协程继续执行 !

gevent 协程通信

# 将函数封装成协程,并开始调度

>>>producer = gevent.spawn(producer, queue)

# 阻塞(一阻塞就切换协程)等待

>>>gevent.joinall([producer, consumer])

>>>gevent实现单线程下的多socket并发

gevent通信 问题引入

问题一: 协程之间不是能通过switch通信嘛?

>>>是的,由于 gevent 基于 greenlet,所以可以。

问题二: 那为什么还要考虑通信问题?

>>>因为 gevent 不需要使用手动切换,而是遇到阻塞就切换,因此不会去使用switch !

gevent是python的一个并发框架,以微线程greenlet为核心,使用了epoll事件监听机制以及诸多其他优化而变得高效。

0 人点赞