3
我需要在單獨的線程上執行可調用的任務,並執行處理操作而不使用Threadpool執行器。下面是使用RxJava爲我工作的解決方案。希望這可以幫助那裏的人。如果您有任何建議或不同的解決方案,請隨時在下面回答。如何在不使用Threadpool Executors的情況下在單獨的線程上異步執行可調用任務?
@Component
public class TaskProcessor<T> {
@FunctionalInterface
public interface ProcessResult<V> {
void process(V v);
}
public void runTaskOnNewThread(Callable<T> task,ProcessResult<T> action) {
Assert.notNull(task, "task cannot be null");
Observable.fromCallable(task)
.subscribeOn(Schedulers.newThread())
.subscribe(new Action1<T>() {
@Override
public void call(T result) {
action.process(result);
}
});
}
}
建議:你可以提出和回答你自己的問題。發佈問題時,點擊複選框 - **回答自己的問題** - https://stackoverflow.blog/2011/07/its-ok-to-ask-and-answer-your-own-questions/ –
There總是一個線程池;你只需不必管理它。 – akarnokd
@akarnokd你是對的,我們並不想管理池大小和其他依賴項。 – Sabarish