tips: 输出语句为:Thread.currentThread().getName()+"的call()方法在运行" /定义一个实现Callable接口的实现类,类名必须命名为MyThread_callable
时间: 2024-03-10 08:50:07 浏览: 63
Java多线程之Callable接口的实现
好的,这是一个使用Callable接口实现的示例代码,这里定义了一个实现Callable接口的实现类,并将类名命名为MyThread_callable,输出语句为Thread.currentThread().getName()+"的call()方法在运行":
```java
import java.util.concurrent.Callable;
public class MyThread_callable implements Callable<String> {
@Override
public String call() throws Exception {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getName() + "的call()方法在运行");
}
return Thread.currentThread().getName();
}
}
```
在这个示例中,我们定义了一个实现Callable接口的实现类MyThread_callable,并重写了它的call()方法。在call()方法中,我们使用for循环输出5遍“Thread.currentThread().getName() +“的call()方法在运行"”,然后返回当前线程的名字。
您可以通过创建MyThread_callable对象并使用ExecutorService来执行它,例如:
```java
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class Main {
public static void main(String[] args) throws Exception {
ExecutorService executorService = Executors.newSingleThreadExecutor();
MyThread_callable myThread_callable = new MyThread_callable();
Future<String> future = executorService.submit(myThread_callable);
String result = future.get();
System.out.println("线程返回的结果是:" + result);
executorService.shutdown();
}
}
```
在这个示例中,我们首先创建了一个ExecutorService对象,并使用newSingleThreadExecutor()方法创建了一个单个线程的线程池。然后,我们创建了一个MyThread_callable对象,并使用submit()方法将它提交给线程池来执行。submit()方法返回一个Future对象,我们可以使用get()方法获取线程的返回值。最后,我们输出线程返回的结果,并关闭线程池。
阅读全文