实现Callable接口创建线程
时间: 2023-12-06 12:03:30 浏览: 96
要实现Callable接口创建线程,你需要按照以下步骤进行:
1. 创建一个类,并实现Callable接口。在这个类中,你需要重写call()方法,这个方法会在新线程中运行。
2. 创建一个ExecutorService对象。这个对象会管理线程池,并且可以让你轻松地提交Callable任务。
3. 使用ExecutorService的submit()方法提交Callable任务,并获得一个Future对象。这个对象可以用来检查任务的状态和获取任务的返回值。
下面是一个示例代码:
```java
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class MyCallable implements Callable<Integer> {
@Override
public Integer call() throws Exception {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
return sum;
}
public static void main(String[] args) throws Exception {
ExecutorService executorService = Executors.newSingleThreadExecutor();
Future<Integer> future = executorService.submit(new MyCallable());
System.out.println("计算中...");
Integer result = future.get();
System.out.println("计算结果为:" + result);
executorService.shutdown();
}
}
```
在这个示例代码中,MyCallable类实现了Callable接口,并在call()方法中计算1到100的和。然后,在main()方法中,我们创建了一个单线程的ExecutorService对象,并使用submit()方法提交MyCallable任务。我们使用Future对象获取任务的返回值,并在控制台中输出了结果。最后,我们调用了executorService对象的shutdown()方法来关闭线程池。
阅读全文