请根据java线程runnable接口和callable接口的不同与各自的特点,举个例子
时间: 2024-02-20 16:01:10 浏览: 53
好的,以下是一个使用Runnable接口的例子:
```java
public class MyRunnable implements Runnable {
public void run() {
System.out.println("This is a thread using Runnable interface.");
}
}
```
在这个例子中,我们实现了Runnable接口并重写了run()方法,在run()方法中定义了线程要执行的操作。我们可以使用下面的代码来启动这个线程:
```java
MyRunnable myRunnable = new MyRunnable();
Thread thread = new Thread(myRunnable);
thread.start();
```
接下来是一个使用Callable接口的例子:
```java
import java.util.concurrent.Callable;
public class MyCallable implements Callable<Integer> {
public Integer call() {
int sum = 0;
for (int i = 1; i <= 100; i++) {
sum += i;
}
return sum;
}
}
```
在这个例子中,我们实现了Callable接口并重写了call()方法,在call()方法中定义了线程要执行的操作并返回一个Integer类型的结果。我们可以使用下面的代码来启动这个线程:
```java
MyCallable myCallable = new MyCallable();
FutureTask<Integer> futureTask = new FutureTask<>(myCallable);
Thread thread = new Thread(futureTask);
thread.start();
int result = futureTask.get();
System.out.println("The sum of 1 to 100 is: " + result);
```
在这个例子中,我们使用了FutureTask类来获取Callable线程的返回值。通过调用FutureTask类的get()方法,我们可以等待线程执行完毕并获取返回值。
阅读全文