在Java中,可以使用多線程或者回調(diào)函數(shù)來實(shí)現(xiàn)異步結(jié)果不阻塞的效果。
new Thread(() -> {
// 執(zhí)行耗時(shí)的任務(wù)
String result = longRunningTask();
// 將結(jié)果傳遞給后續(xù)的代碼,可以使用回調(diào)函數(shù)或者消息隊(duì)列等機(jī)制
callback(result);
}).start();
// 主線程繼續(xù)執(zhí)行后續(xù)的代碼
otherCode();
public interface TaskCallback {
void onResult(String result);
}
public void longRunningTask(TaskCallback callback) {
new Thread(() -> {
// 執(zhí)行耗時(shí)的任務(wù)
String result = longRunningTask();
// 調(diào)用回調(diào)函數(shù)處理結(jié)果
callback.onResult(result);
}).start();
}
// 調(diào)用異步任務(wù)
longRunningTask(result -> {
// 處理結(jié)果
System.out.println(result);
});
// 主線程繼續(xù)執(zhí)行后續(xù)的代碼
otherCode();
以上兩種方法都可以實(shí)現(xiàn)異步結(jié)果不阻塞的效果,具體使用哪種方法取決于具體的需求和項(xiàng)目結(jié)構(gòu)。