java线程中run方法可以返回值吗
时间: 2024-04-30 09:19:09 浏览: 134
Java中的线程的run()方法是void类型的,不能返回值。如果需要返回值,可以通过以下两种方式实现:
1. 在线程类中定义一个成员变量,通过setter方法设置返回值,并在需要时获取该值。
2. 使用Callable接口代替Runnable接口,Callable的call()方法可以返回一个结果,但需要通过FutureTask类来包装并启动线程。例如:
```java
public class MyCallable implements Callable<Integer> {
@Override
public Integer call() throws Exception {
// 执行任务并返回结果
return 42;
}
}
public class Main {
public static void main(String[] args) throws Exception {
MyCallable myCallable = new MyCallable();
FutureTask<Integer> futureTask = new FutureTask<>(myCallable);
Thread thread = new Thread(futureTask);
thread.start();
Integer result = futureTask.get();
System.out.println(result);
}
}
```
这里使用了Callable接口来实现线程的任务,并通过FutureTask类来获取结果。注意,在调用futureTask.get()时会阻塞当前线程,直到任务执行完毕并返回结果。
阅读全文