【发布时间】:2016-01-18 23:40:09
【问题描述】:
这些天似乎每个人都在谈论反应式应用程序,反应式宣言似乎鼓励非阻塞/异步代码。我在 youtube 上看过很多视频,演讲者都在鼓励非阻塞代码,但没有人说编写非阻塞代码比阻塞更有好处
"using futures is good because it is not blocking your code" - some speaker
这只是让“阻塞代码”听起来像个坏词。
我的问题很简单:如果我有一个任务并运行它:
- 阻塞代码 - 在一个线程上运行任务的位置
- 非阻塞代码 - 一个线程将任务委托给另一个线程
事实上,在上述两种情况下,我想要运行的实际任务总是在 1 个线程上运行。第二个选项只会增加应用程序的复杂性,而第一个选项更简单,可能更快,因为我不必委托。
我了解在执行任务期间的某个时间点,需要执行多个并发任务,因此线程/非阻塞/异步代码在这里会有所帮助。但是为什么 Reactive 宣言鼓励非阻塞应用程序从头开始呢?除了让应用程序中的一大堆 Futures 和 Promises 使代码更复杂和更难调试之外,还有什么好处?
【问题讨论】:
标签: multithreading asynchronous reactive-programming