• 115

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

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

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

阅读 3.2k
评论
    1 个回答

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

      撰写回答

      登录后参与交流、获取后续更新提醒