共计 1068 个字符,预计需要花费 3 分钟才能阅读完成。
在 Java 多线程中获取返回值可以通过以下几种方式实现:
- 使用 Callable 和 Future 接口:Callable 接口表示一个可以返回结果的任务,Future 接口表示一个可能还没有完成的任务的结果。可以通过 ExecutorService.submit(Callable) 方法提交 Callable 任务,并返回一个 Future 对象,然后可以通过 Future.get() 方法获取任务的返回值。
ExecutorService executor = Executors.newFixedThreadPool(1);
Callable<Integer> task = new Callable<Integer>() {@Override
public Integer call() throws Exception {return 1 + 2;
}
};
Future<Integer> future = executor.submit(task);
Integer result = future.get();
System.out.println("Result: " + result);
executor.shutdown();
- 使用 Thread.join() 方法:通过调用 Thread.join() 方法,主线程可以等待子线程执行完毕并获取其返回值。
Thread thread = new Thread(new Runnable() {@Override
public void run() {// 执行耗时操作
}
});
thread.start();
thread.join();
// 获取返回值
- 使用共享变量:可以使用共享变量在多个线程之间传递数据。在需要返回值的地方,可以将值保存到共享变量中,然后在另一个线程中获取这个值。
class MyRunnable implements Runnable {private int result;
@Override
public void run() {result = 1 + 2;
}
public int getResult() {return result;
}
}
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();
thread.join();
int result = myRunnable.getResult();
System.out.println("Result: " + result);
这些是一些常见的方法,在实际开发中可以根据具体情况选择最适合的方式来获取多线程的返回值。
丸趣 TV 网 – 提供最优质的资源集合!
正文完