Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Multithreading @Spring中的异步与反应器线程池_Multithreading_Spring_Spring Annotations_Reactor - Fatal编程技术网

Multithreading @Spring中的异步与反应器线程池

Multithreading @Spring中的异步与反应器线程池,multithreading,spring,spring-annotations,reactor,Multithreading,Spring,Spring Annotations,Reactor,带注释的方法和设置为使用相同大小的线程池之间的区别是什么。这种方法有什么好处吗?它会是什么?对于我的使用,我不想用异步方法返回任何值 最明显的区别是Reactor不横切@Async带注释的方法,而是隐式地将事件提交给Reactor。如果您在bean上使用Reactor@Selector注释,那么您将得到与@Async相反的结果:事件处理程序,而不是事件发布程序 话虽如此,Reactor中仍然支持通过。它使用一个接口而不是注释,但概念类似 关于使用其中一个的“优势”:这实际上取决于您在应用程序中做

带注释的方法和设置为使用相同大小的线程池之间的区别是什么。这种方法有什么好处吗?它会是什么?对于我的使用,我不想用异步方法返回任何值

最明显的区别是Reactor不横切
@Async
带注释的方法,而是隐式地将事件提交给
Reactor
。如果您在bean上使用Reactor
@Selector
注释,那么您将得到与
@Async
相反的结果:事件处理程序,而不是事件发布程序

话虽如此,Reactor中仍然支持通过。它使用一个接口而不是注释,但概念类似

关于使用其中一个的“优势”:这实际上取决于您在应用程序中做的其他事情,以及您是否在更一般的意义上使用Reactor。Reactor并不是设计用来替换线程池的。Reactor中的
ThreadPoolExecutorDispatcher
只在下面使用一个普通的
ThreadPoolExecutor
。在该场景中使用Reactor的优势来自Reactor中使用的优化事件发布,而不是始终创建新的
可调用项
可运行项
,以及使用Reactor的
承诺
API来处理异步执行


从API的角度来看,与普通的
TaskExecutor
相比,在后台作业中使用Reactor具有明显且可测量的优势

最明显的区别是Reactor不横切
@Async
带注释的方法,而是隐式地将事件提交给
Reactor
。如果您在bean上使用Reactor
@Selector
注释,那么您将得到与
@Async
相反的结果:事件处理程序,而不是事件发布程序

话虽如此,Reactor中仍然支持通过。它使用一个接口而不是注释,但概念类似

关于使用其中一个的“优势”:这实际上取决于您在应用程序中做的其他事情,以及您是否在更一般的意义上使用Reactor。Reactor并不是设计用来替换线程池的。Reactor中的
ThreadPoolExecutorDispatcher
只在下面使用一个普通的
ThreadPoolExecutor
。在该场景中使用Reactor的优势来自Reactor中使用的优化事件发布,而不是始终创建新的
可调用项
可运行项
,以及使用Reactor的
承诺
API来处理异步执行

从API的角度来看,与普通的
TaskExecutor
相比,在后台作业中使用Reactor具有明显且可测量的优势