我了解它们以某种方式工作与每个用户的线程不同。这到底如何工作?

(“非障碍”与它有关系吗?)

有帮助吗?

解决方案

从扭曲的文档中:

反应器是扭曲内事件循环的核心 - 循环使用扭曲驱动应用。事件循环是一种编程结构,它在程序中等待并派遣事件或消息。它通过调用一些内部或外部的“事件提供商”来起作用,该内部或外部“事件提供商”通常会阻止直到事件到达,然后调用相关事件处理程序(“派遣事件”)。反应堆为许多服务提供了基本接口,包括网络通信,线程和事件调度。

也可以看看 http://en.wikipedia.org/wiki/event_loop

非障碍 与此相关,如果您想在一个线程中处理多个插座上的事件(或更一般地来自任何类型的事件源),则无法使用 阻止 处理这些事件的操作。如果您在第一个插座上进行阻止读数,那么直到第一个字节到达第一个字节之前,您将无法从第二个插座读取。这不太好,因为您真的不知道哪个插座将首先读取字节。相反,您使用类似的东西 select (在上面链接的Wikipedia页面上进行了更详细的详细描述)告诉您哪个套接字具有字节,然后从该插座读取它们而不会阻塞。

这一切都意味着您可以从任何数量的事件源中为事件提供一个接一个的事件,从而同时处理所有事件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top