我知道异步套接字编程比同步编译更具可扩展性。
但有一点我对此并不了解:
如果您的事件循环应该是非阻塞的,那么如何将耗时的工作委托给另一个线程而不会阻塞?工作队列通常需要互斥锁进行保护。我知道有无锁队列,但这是怎么做到的?有人可以对这件事情提出一些概念吗?
答案 0 :(得分:1)
工作线程始终从队列块中拉出。他们必须在队列为空时。他们应该做什么呢?
这是不应该阻止的工作项,因此我们只需要几个队列工作线程。
异步IO是关于使用更少的线程。
如果你的事件循环应该是非阻塞的
这种假设是错误的。它不应该阻止。循环包含始终阻塞。每次队列为空并且工作人员试图出队时。