Callable和Runnable的区别「建议收藏」

classcimplementsCallable<String>{ @Override publicStringcall()throwsException{ returnnull; } } classrimplementsRunnable{ @Override publicvoidrun(){ } }相同点:…

大家好,又见面了,我是你们的朋友全栈君。

	class c implements Callable<String>{ 
   
		@Override
		public String call() throws Exception { 
   
			return null;
		}
	}
	
	class r implements Runnable{ 
   
		@Override
		public void run() { 
   
		}
	}

相同点:

1、两者都是接口

2、两者都需要调用Thread.start启动线程

不同点:

1、如上面代码所示,callable的核心是call方法,允许返回值,runnable的核心是run方法,没有返回值

2、call方法可以抛出异常,但是run方法不行

3、因为runnable是java1.1就有了,所以他不存在返回值,后期在java1.5进行了优化,就出现了callable,就有了返回值和抛异常

4、callable和runnable都可以应用于executors。而thread类只支持runnable

测试:使用线程池来运行

public static void main(String[] args) throws Exception{ 
   
		//1 创建一个线程池
		//调用Executors类的静态方法
		ExecutorService service = Executors.newFixedThreadPool(10);
		//2提交runnable对象
		service.submit(new Runnable() { 
   
			@Override
			public void run() { 
   
			}
		});
		//3 提交callable对象
		service.submit(new Callable<String>() { 
   
			@Override
			public String call() throws Exception { 
   
				return null;
			}
		});
		//4 关闭线程池
		service.shutdown();
	}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/126405.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月17日 下午9:20
下一篇 2022年4月17日 下午9:40


相关推荐

  • GBK 编码

    GBK 编码GBK 编码范围 8140 FEFE 汉字编码范围见第二节 码位分配及顺序 GBK 编码 是对 GB2312 编码的扩展 因此完全兼容 GB2312 80 标准 GBK 编码依然采用双字节编码方案 其编码范围 8140 FEFE 剔除 xx7F 码位 共 23940 个码位 共收录汉字和图形符号 21886 个 其中汉字 包括部首和构件 21003 个 图形符号 883 个 GBK 编码支持国际标准 ISO IEC10646 1 和国家标准 GB13000 1 中的全部中日韩汉字 并包含了 BIG5 编码中的所有汉字 GBK 编码方案于 1995 年 12 月

    2026年3月20日
    1
  • 视频编解码学习之二:编解码框架

    视频编解码学习之二:编解码框架第四章视频编码基础 1.压缩码流语法:码流中各个元素的位置关系01001001…图像编码类型(01),宏块类型(00),编码系数1001等语义:每个语法元素所表达的意义。例如:图像编码类型 2.

    2022年8月1日
    6
  • CSS超出文本隐藏显示省略号

    CSS超出文本隐藏显示省略号style max width 200px overflow hidden text overflow ellipsis white space nowrap

    2026年3月17日
    2
  • IDEA 使用Git图文详解(学好idea操作git大全)

    IDEA 使用Git图文详解(学好idea操作git大全)一 配置 git 二 项目到远程仓库新建本地仓库将需要上传的文件项目右击 git add 添加到 git 仓库 文件名为绿色然后 commit 项目 提交项目 这里是先提交带本地仓库 push 到线上仓库提交项目到 gitee 报错 Pushtoorigin masterwasrej 的解决办法这个问题比较常见了 一般是在第一次上传项目到 github 或者 gitee 上会出现 以前将项目上传到 github 的时候出现这个问题

    2026年3月17日
    11
  • jsonobject转string数组_json字符串转jsonobject对象

    jsonobject转string数组_json字符串转jsonobject对象首先在maven中添加阿里的fastjson依赖<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.68</version></dependency…

    2022年8月23日
    7
  • 算法:FLP不可能理论。

    算法:FLP不可能理论。FLP 结论 在异步通信场景 即使只有一个进程失败 也没有任何算法能保证非失败进程达到一致性

    2026年2月21日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号