1.概述
自Java早期以来,多线程一直是该语言的一个主要方面。Runnable是用于表示多线程任务的核心接口,Callable是在Java 1.5中添加的Runnable的改进版本。
在本文中,我们将探讨两种接口的差异和应用。
2.执行机制
两个接口都旨在表示可由多个线程执行的任务。Runnable的任务都可以使用运行线程类或ExecutorService的,而可调用只能用后者来运行。
3.返回值
让我们深入了解这些接口处理返回值的方式。
3.1 使用Runnable
Runnable接口是一个功能接口,并且具有单一的run()不接受任何参数,并且不返回任何值的方法。
这适用于我们不查找线程执行结果的情况,例如,传入事件日志记录:
public interface Runnable {
public void run();
}
让我们通过一个例子来理解这个:
public class EventLoggingTask implements Runnable{
private Logger logger = LoggerFactory.getLogger(EventLoggingTask.class);
@Override
publ