异步编程中基于线程与基于事件的方法

时间:2018-07-08 12:05:45

标签: multithreading asynchronous event-driven

通过阅读文献,我了解应用程序可以采用两种方法进行异步编程:

  • 为耗时的任务启动新线程
  • 事件驱动的方法,可以定义为(来自“学习节点”一书)
  

第二种方法是采用事件驱动的体系结构。那是怎么回事   当调用耗时的过程时,应用程序不会等待它完成。   取而代之的是,该过程会通过发出事件来通知何时结束。这个事件   被添加到队列或事件循环中。任何相关功能都会引起关注   在应用程序发生此事件时,以及从事件中拉出事件时   循环并处理后,将调用与事件相关的依赖功能   数据传递给它。

反对第一种方法的普遍论点是:

  

这种方法的问题是   线程很昂贵。它们在资源上很昂贵,而在   增加了应用程序的复杂性。

但是我无法理解这个论点。在事件驱动的方法中,也将需要线程来执行耗时的任务。不是吗?

第二种方法比第一种方法得分高吗?

编辑:节点使用库libuv处理任务的线程。

0 个答案:

没有答案
相关问题