我是gevent的新手,我读过gevent的介绍
他们提供了简单的例子,但我很难理解格林莱特是什么是。从学习并发性。在
Greenlets are a very lightweight coroutine written in C that
are cooperatively scheduled. They provide us with a very lightweight thread-
like object that allows us to achieve concurrent execution within our Python
programs without incurring the cost of spinning up multiple threads.
青菜不是线? 同步点是如何定义的?有人能举例说明吗?在
同步编程一次只能做一件事。因此,当一个数据库查询正在运行时,其他人(比如通过一个web框架打开一个网页)必须等待它完成。在
Gevent通过使用上下文切换和事件使其异步。这是什么意思?就这样想吧。你有一个等待事情发生的队列,同时gevent说,好吧,你可以等等,我要转移到下一个任务,在我等待你完成的时候开始做一些事情(比如数据库读取,或者等待用户输入),当你完成后,当我回顾我的队列,你说你准备好下一步时,我集中精力为你准备的。在
通过这种方式,尽管仍然是单线程的,应用程序可以在作业之间快速切换,不断检查状态,看看是否值得关注,同时,其他事情也可以在等待您的时候完成。在
与由操作系统和heavy处理的多线程不同,它们需要自己的资源,并且在这些线程之间切换非常昂贵。在
Gevent使得将通常使用线程的东西转换为greenlets变得容易。在
相关问题 更多 >
编程相关推荐