是不是在说event loop的handler应尽量避免io操作吖 |
请问文章中的图是有什么工具画的 |
引用:zhangsan 发表于 2021-01-27 15:16 不矛盾啊。比如这个服务员(EventLoop)只是把菜端到客人桌子上就走,是很快就能给两桌客人提供服务的。但假如有一桌客人需要服务员(EventLoop)贴身服侍,比如站那端茶倒水,那就没空为第二桌客人端菜了。协程我理解就是如果需要端茶倒水就让他们这桌客人自己来吧。 |
上面说的是event loop最终实现的效果。下面说的是实现这种效果的过程中遇到的问题,以及如何解决。是这样吗?楼主 |
引用:JackJiang 发表于 2021-01-27 15:27 楼主 这一点怎么理解?求解 |
引用:zhangsan 发表于 2021-01-27 15:16 你咋看的这么认真呢 |
上面说 同样是一个服务员也可以同时处理多个顾客,这个服务员就相当于这里的Event loop,即使这个event loop只运行在一个线程(进程)中也可以同时处理多个用户请求。 下面又说 在单线程的event loop中是有问题的,原因就在于当我们在event loop中执行阻塞式IO操作时整个线程(event loop)会被暂停运行,这时操作系统将没有其它线程可以调度,因为系统中只有一个event loop在处理用户请求,这样当event loop线程被阻塞暂停运行时所有用户请求都没有办法被处理 这两种说法是不是相互矛盾呢? |