当前位置: 首页 > 编程笔记 >

Java中Runnable和Callable接口之间的区别

姬高澹
2023-03-14
本文向大家介绍Java中Runnable和Callable接口之间的区别,包括了Java中Runnable和Callable接口之间的区别的使用技巧和注意事项,需要的朋友参考一下

可运行和可调用两个功能接口。实现这些接口的类设计为由另一个线程执行。

可以使用Ruunable启动线程,这是启动新线程的两种方法:一种是通过子类化Thread类,另一种是实现Runnable接口。

线程类没有可调用的构造html" target="_blank">函数,因此我们应使用ExecutorService类来执行线程。

序号 可运行 可召回
1个

It belongs to Java.lang
它属于java.util.concurrent
2
线程创建
We can create thread by passing runnable as a parameter.
我们不能通过传递callable作为参数来创建线程  
3
返回类型
Ruunable does not return anything
可调用可返回结果
4。
方法
It has run() method
它具有call()方法
5
批量执行
It can’t be used for bulk execution of task
通过调用invokeAll(),可将其用于批量执行任务。

可运行示例

public class RunnableExample implements Runnable {
   public void run() {
      System.out.println("Hello from a Runnable!");
   }
   public static void main(String args[]) {
      (new Thread(new RunnableExample())).start();
   }
}

可通话的例子

public class Main {
   public static void main(String args[]) throws InterruptedException, ExecutionException {
      ExecutorService services = Executors.newSingleThreadExecutor();
      Future<?> future = services.submit(new Task());
      System.out.println("In Future Object" + future.get());
   }
}
import java.util.concurrent.Callable;

public class Task implements Callable {

   @Override
   public String call() throws Exception {
      System.out.println("In call");
      String name = "test";
      return name;
   }
}
 类似资料:
  • 在Java中设计并发线程时,使用和接口有什么区别,为什么要选择其中一个?

  • 本文向大家介绍实现Runnable接口和Callable接口的区别?相关面试题,主要包含被问及实现Runnable接口和Callable接口的区别?时的应答技巧和注意事项,需要的朋友参考一下 如果想让线程池执行任务的话需要实现的Runnable接口或Callable接口。 Runnable接口或Callable接口实现类都可以被ThreadPoolExecutor或ScheduledThreadP

  • 问题内容: 我知道Java,现在正在学习Objective-C。Java接口和Objective-C协议之间到底有什么区别? 问题答案: 首先,从Java的一位创建者那里对该主题进行了一些历史性的展望。接下来,维基百科在Objective- C协议中 提供了适度有用的部分。特别要了解的是,Objective- C支持 正式协议 (使用关键字明确声明,相当于Java接口)和 非正式协议 (仅一个或多

  • 本文向大家介绍Java多线程之Callable接口的实现,包括了Java多线程之Callable接口的实现的使用技巧和注意事项,需要的朋友参考一下 1.接口的定义: 2.Callable和Runnable的异同 先看下Runnable接口的定义 Callable的call()方法类似于Runnable接口中run()方法,都定义任务要完成的工作,实现这两个接口时要分别重写这两个方法,主要的不同之处

  • 问题内容: Python中的抽象类和接口有什么区别? 问题答案: 有时您会看到以下内容: 因为Python没有(也不需要)正式的Interface协定,所以抽象和接口之间不存在Java风格的区别。如果有人努力定义一个正式的接口,它也将是一个抽象类。唯一的区别在于文档字符串中所述的意图。 当您进行鸭类输入时,抽象和接口之间的区别是令人不解的事情。 Java使用接口是因为它没有多重继承。 由于Pyth

  • 问题内容: 在我的一次采访中,我被要求解释Interface和Abstract类之间的区别。 这是我的回应: Java接口的方法是隐式抽象的,不能具有实现。Java抽象类可以具有实现默认行为的实例方法。 在Java接口中声明的变量默认为final。抽象类可能包含非最终变量。 默认情况下,Java接口的成员是公共的。Java抽象类可以具有类成员的常用风格,例如private,protected等。