异步I / O和耗时的工作

时间:2014-10-25 16:59:57

标签: c sockets asynchronous tcp kqueue

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

但有一点我对此并不了解:

如果您的事件循环应该是非阻塞的,那么如何将耗时的工作委托给另一个线程而不会阻塞?工作队列通常需要互斥锁进行保护。我知道有无锁队列,但这是怎么做到的?有人可以对这件事情提出一些概念吗?

1 个答案:

答案 0 :(得分:1)

工作线程始终从队列块中拉出。他们必须在队列为空时。他们应该做什么呢?

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

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

  

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

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

相关问题