gevent实现的协程是同步非阻塞还是异步非阻塞?

①:gevent就是python的协程库,用monkey_patch的方式实现了python的协程,它解决的问题主要是把阻塞IO通过协程的方式转为非阻塞IO,gevent是同步非阻塞IO,而nodejs的callback是异步非阻塞IO,这样理解对吗?
②:是不是协程就是解决IO阻塞问题的
③:python的gevent能不能像golang那样开很多协程
④:还有更好的性能解决方案吗?

新手有些疑问,请各位大佬指点。谢谢!

阅读 6.4k
1 个回答

IO是不是阻塞的和协程是没有关系的,python本来就能支持非阻塞IO
比如在linux只要用API,更改了文件描述符的属性就可以
协程是同步的,并不是异步的,gevent除了协程的支持还要有比如同步非阻塞IO才行。
nodejs的底层的实现支持异步非阻塞IO
协程只是改变了写东西的方式,其实实际的东西是没有太大变化的,单线程的代码还是会在单线程上跑,
不过配合非阻塞IO可以更好的做东西,golang的协程支持多线程

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏