我对事件不熟悉,我读过盖特姆的介绍
他们提供了一些简单的例子,但我很难理解什么是绿色is.From学习并发。
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.
绿线不是线吗?如何定义同步点?有人能用例子解释吗?
发布于 2018-04-06 22:20:11
同步编程一次只能做一件事。因此,当数据库查询正在运行时,其他人(比如通过web框架拉出网页)必须等待完成。
Gevent通过使用上下文切换和事件使其异步。这是什么意思?把它想成这样。你有一个排队的东西等着事情发生,同时gevent说,好的,你可以等,我将转到下一个任务,在我等待你完成的时候开始做一些事情(比如数据库读取,或者等待用户输入),当你完成时,当我回到我的队列,当你说你准备好下一步的时候,我会为你集中精力。
通过这种方式,尽管仍然是单线程,应用程序可以在任务之间切换得非常快,不断检查状态以确定它是否值得关注,同时,在等待您时还可以完成其他事情。
与由操作系统处理的多线程不同,它们需要自己的资源,并且在它们之间切换成本很高。
Gevent使通常使用线程转换为绿色的东西变得很容易。
https://stackoverflow.com/questions/49669212
复制相似问题