我们可以 return 以线程安全的方式从方法中运行吗?
Can we return Function from a method in a thread-safe way?
private Function<ServiceBean, Mono<SomeResponse>> someFunction(SomeRequest someRequest) {
return serviceBean -> serviceBean.doSomething(someRequest)
.next();
}
以上方法安全吗?
如果我使用不同类型的 SomeRequests 创建,比如 10 个线程,并同时调用此方法,假设线程安全是否安全?
是的,这是线程安全的。但是每次调用 someFunction(..) 时,它都会创建一个新的 lambda。尽管 lamda 是轻量级对象,但创建这样的函数并不是一个好主意。最好在 class 级别声明一个 BiFunction。
private Function<ServiceBean, Mono<SomeResponse>> someFunction(SomeRequest someRequest) {
return serviceBean -> serviceBean.doSomething(someRequest)
.next();
}
以上方法安全吗?
如果我使用不同类型的 SomeRequests 创建,比如 10 个线程,并同时调用此方法,假设线程安全是否安全?
是的,这是线程安全的。但是每次调用 someFunction(..) 时,它都会创建一个新的 lambda。尽管 lamda 是轻量级对象,但创建这样的函数并不是一个好主意。最好在 class 级别声明一个 BiFunction。