[英]Synchronization between @async methods
我必须在异步方法之间同步。
我有三种方法说
method1,method2,method3具有以下定义
void method1() {
method2();
//some code
method3();
}
@Async
void method2() {
//some code
}
@Async
void method3() {
//some code
}
我的要求是我想确保在method2之后执行method3。 经过一些搜索后,我得出一个结论,可以使用池大小配置为1的新SimpleThreadPoolTaskExecutor,并将其用于方法method2和method3。 我想知道是否有比这更好的选择。 我是Spring Task计划的新手。 非常抱歉,没有提供可演示的示例。
void method1() {
Semaphore semaphore = new Semaphore(1);
semaphore.aquire();
method2(semaphore);
method3(semaphore);
}
@Async
void method2(Semaphore semaphore) {
//do some stuff
semaphore.release();
}
@Async
void method3(Semaphore semaphore) {
semaphore.aquire();
// do some stuff
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.