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();
	}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • flume什么意思_FlumenStellarum

    flume什么意思_FlumenStellarum1.HdfsSinka1.channels=c1a1.sinks=k1a1.sinks.k1.type=hdfsa1.sinks.k1.channel=c1a1.sinks.k1.hdfs.path=/flume/events/%y-%m-%d/%H%M/%Sa1.sinks.k1.hdfs.filePrefix=events-a1.sinks.k1.

  • django自定义用户认证_为什么需要自定义类加载器

    django自定义用户认证_为什么需要自定义类加载器前言如果我们不用使用drf那套认证规则,我们想自定义认证类,那么我们首先要知道,drf本身是如何定义认证规则的,也就是要查看它的源码是如何写的源码分析源码的入口在APIView.py文件下的di

  • Excel宏的录制和解密

    Excel宏的录制和解密本篇演示的Excel版本:Excel2019本篇演示一个简单的宏的录制。实现的效果是将Sheet1的A列复制到到Sheet2的A列。宏的录制和保存步骤打开Excel点击上方菜单的“视图”,点击“宏”,在下拉菜单中选择录制宏。在弹出对话框中,给宏取个名字后点击“确定”在Sheet1中选择A列,复制后粘贴到sheet2的A列,在到“宏”菜单中点击“停止录制”在点击保存的时候会弹出一个提示框,注意:如果要保存宏,要点击“否

  • html5空白站位符号,空格代码(隐形空白符号)

    html5空白站位符号,空格代码(隐形空白符号)CSS的空间处理一、空格规则浏览器通常会忽略HTML代码中的空白。上面是一行HTML代码,文本的前面、里面和后面各有两个空格。为了便于识别,这里使用半圆形符号来表示空间。浏览器的输出如下。你好世界如您所见,文本前后的空格将被忽略,内部连续的空格将只被算作一个。这是浏览器处理空格的基本规则。如果希望空格按原样输出,可以使用前置标签。另一种方法是用HTML实体来代替表示空格。二、空格字符处理空格的HT…

  • 利用serv-u创建ftp服务器_ftp读取目录列表失败

    利用serv-u创建ftp服务器_ftp读取目录列表失败一、由来最近改写了项目中ftp上传部分的代码。用到的组件为:<dependency><groupId>commons-net</groupId><artifactId>commons-net</artifactId><version>3.3</version></depen…

  • css中的clear的作用是什么_css中class的用法

    css中的clear的作用是什么_css中class的用法cssclear属性深入了解:一、什么是CSSclear清除浮动?元素浮动之后,周围的元素会重新排列,为了避免这种情况,使用clear属性。clear属性指定元素两侧不能出现浮动元素。使用clear属性往文本中添加图片廊:clear属性值:lef…

发表回复

您的电子邮箱地址不会被公开。

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