1

我知道异步套接字编程比同步更具可扩展性。

但是有一点我不太了解:

如果您的事件循环应该是非阻塞的,您如何将耗时的工作委托给另一个线程而不阻塞?工作队列通常需要互斥体来保护。我知道有无锁队列,但这是如何完成的?有人可以给这个东西一点概念吗?

4

1 回答 1

1

工作线程一直从队列块中拉出。当队列为空时,他们必须这样做。他们还应该做什么?

不应该阻塞的是工作项,因此我们只需要几个队列工作线程。

异步 IO 是关于使用更少的线程。

如果您的事件循环应该是非阻塞的

这个假设是错误的。它不应该不阻塞。循环始终包含阻塞。每次队列为空并且工作人员尝试出队时。

于 2014-10-25T19:00:30.110 回答