头歌实践教学平台多线程基础答案
时间: 2023-11-22 11:48:26 浏览: 200
Java基础案例教程(第2版)-课后习题答案.zip
以下是Java多线程基础的答案:
Java是一种支持多线程的编程语言,它可以同时执行多个线程,从而提高程序的效率。在Java中,可以通过继承Thread类或实现Runnable接口来创建线程。其中,实现Runnable接口的方式更为常用,因为它可以避免单继承的限制,并且更加灵活。
在Java中,可以通过Callable接口来创建一个带返回值的线程。Callable接口与Runnable接口类似,但是它可以返回一个结果,并且可以抛出异常。在使用Callable接口时,需要使用ExecutorService的submit方法来提交Callable任务,并且返回一个Future对象,通过Future对象可以获取Callable任务的返回结果。
下面是一个示例代码,演示了如何使用Callable接口来创建一个线程,并获取线程的返回结果:
```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> {
private int num;
public MyCallable(int num) {
this.num = num;
}
public Integer call() throws Exception {
if (num == 0) {
return 0;
} else if (num == 1) {
return 1;
} else {
return call(num - 1) + call(num - 2);
}
}
public static void main(String[] args) throws Exception {
ExecutorService executor = Executors.newSingleThreadExecutor();
Future<Integer> future = executor.submit(new MyCallable(10));
System.out.println(future.get());
executor.shutdown();
}
}
```
在上面的代码中,MyCallable类实现了Callable接口,并重写了call方法来计算斐波那契数列的值。在main方法中,创建了一个ExecutorService对象,并使用submit方法提交了一个MyCallable任务,返回一个Future对象。通过Future对象的get方法可以获取MyCallable任务的返回结果,并打印输出。
阅读全文