Java -----多线程 创建线程的方式三: 实现Callable接口----JDK 5.0 新增
1 package bytezero.thread2;
2
3 import java.util.concurrent.Callable;
4 import java.util.concurrent.ExecutionException;
5 import java.util.concurrent.FutureTask;
6
7 /**
8 *
9 * 创建线程的方式三: 实现Callable接口----JDK 5.0 新增
10 *
11 * 如何理解 实现Callable接口的方式创建多线程比实现Runable接口创建多线程的方式强大?
12 * 1.call()可以有返回值
13 * 2.call()可以抛出异常,被外面的操作捕获,获取异常的信息
14 * 3.Callable是支持泛型的
15 *
16 *
17 * @author Bytezero1·zhenglei! Email:420498246@qq.com
18 * create 2021-10-18 18:05
19 */
20
21 // 1.创建一个实现Callable的实现类
22 class NumThread implements Callable{
23 //2.实现call方法,将此线程需要执行的操作声明在 call方法中
24 @Override
25 public Object call() throws Exception {
26 int sum = 0;
27 for (int i = 1; i <100; i++) {
28 if(i % 2 == 0){
29 System.out.println(i);
30 sum += i;
31 }
32
33 }
34 return sum;
35 }
36 }
37
38 public class ThreadNew {
39 public static void main(String[] args) {
40 //3.创建Callable接口实现类的对象
41 NumThread numThread = new NumThread();
42
43 //4.将此allable接口实现类的对象作为参数传递到 FutureTask构造器中,并创建
44 //FutureTask对象
45 FutureTask futureTask = new FutureTask(numThread);
46 //将FutureTask的对象作为参数传递到 Thread的构造器中,创建Thread对象,并
47 //调用 start()方法
48 new Thread(futureTask).start();
49
50 try {
51 //6.获取Callable中的call方法的返回值
52 //get() 返回值即为FutureTask构造器参数Callable实现重写的call()的返回值
53 Object sum = futureTask.get();
54 System.out.println("总和为:"+sum);
55 } catch (InterruptedException e) {
56 e.printStackTrace();
57 } catch (ExecutionException e) {
58 e.printStackTrace();
59 }
60 }
61 }


Java -----多线程 创建线程的方式三: 实现Callable接口----JDK 5.0 新增的更多相关文章
- Java之创建线程的方式三:实现Callable接口
import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util ...
- 创建线程的方式三:实现Callable接口 --- JDK 5.0新增
/** * 创建线程的方式三:实现Callable接口. --- JDK 5.0新增 * * * 如何理解实现Callable接口的方式创建多线程比实现Runnable接口创建多线程方式强大? * 1 ...
- 创建执行线程方式三:实现Callable接口
Callable接口 ① Java 5.0 在 java.util.concurrent 提供了一个新的创建执行 线程的方式:Callable 接口② Callable 接口类似于 Runnable, ...
- 创建线程的方式三:实现Callable接口-----JDK5.0 新增
package com.yhqtv.java2; /* * 创建线程的方式三:实现Callable接口-----JDK5.0 新增 * * 如何理解实现Callable接口的方式创建多线程比实现Run ...
- 7. Callable 创建线程的方式三
package com.gf.demo06; import java.util.concurrent.Callable; import java.util.concurrent.ExecutionEx ...
- Java学习笔记-多线程-创建线程的方式
创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...
- Java多线程——创建线程的两种方式
创建线程方式一:继承Thread类. 步骤:1,定义一个类继承Thread类.2,覆盖Thread类中的run方法.3,直接创建Thread的子类对象创建线程.4,调用start方法开启线程并调用线程 ...
- java中创建线程的方式
创建线程的方式: 继承thread 实现runnable 线程池 FurureTask/Callable 第一种:继承thread demo1: public class demo1 { public ...
- Java之创建线程的方式四:使用线程池
import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.c ...
- Java 多线程 - 创建线程的方法 + Executors.newXXXThreadPool()缺点
java中创建线程的三种方法以及区别: https://www.cnblogs.com/3s540/p/7172146.html 通过Executor 的工具类,创建三种类型的普通线程池: https ...
随机推荐
- elemetui-中在input框中回车
在input框中回车 <el-input @keyup.enter.native="gotoLogin" class="my-el-input" plac ...
- 【JS 逆向百例】网洛者反爬练习平台第二题:JJEncode 加密
关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 声明 本文章中所有内容仅供学习交流,抓包内容.敏感网址.数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后 ...
- navicat连接远程docker中的mysql报错解决
总是报错 填写主机地址有错误,终于找到方法,是因为docker中的mysql没有设置ip地址,navicat不识别,奉上 https://blog.csdn.net/qq_42838723/artic ...
- TienChin 活动管理-添加活动页面
后端 ActivityController.java @Resource private IChannelService iChannelService; /** * 获取渠道列表 * * @retu ...
- 我为什么从Windows转到Linux?
本文来自读者投稿! 大家好!我是 Guide 哥,Java 后端开发.一个会一点前端,喜欢烹饪的自由少年. 如果文章有任何需要改善和完善的地方,欢迎在评论区指出,共同进步! 喔,看到这个标题千万不要以 ...
- 希捷推出IronWolf Pro 24TB硬盘:CMR构建、285MB/s传输速率
希捷推出了全新IronWolf Pro 24TB硬盘,采用3.5寸规格,满足中小企业和NAS环境需求. 据了解,新款硬盘采用了希捷AgileArray技术,针对NAS系统进行了优化.其通过双平面平衡和 ...
- Win12不会取代Win11!真正目标是Google
Windows 11之后自然应该是Windows 12,但这一次不太一样. 据多个消息源确认,Windows的下一个重大版本将不会是Windows 11的直接升级版,而是更专注于云和Web,同时大力接 ...
- 私有化部署chatGPT,告别网络困扰
最近的chatGPT是热火朝天,基本人手一个.工具用的好,工作5分钟,划水一整天. 不过最近ChatGPT的访问越来越限制了,访问官网都有网络的问题,今天小卷给大家介绍一个方案,私人独享属于自己的ch ...
- 编译pjsip源码
操作系统 : Windows 10_x64 [版本 10.0.19042.685] pjsip版本 : 2.10 pjsip官网:https://www.pjsip.org/ 1. 下载pjsip源代 ...
- Android 自动化测试项目
1 前言 在 Android自动化测试框架uiautomator2详解 中,介绍了 uiautomator2 框架的环境配置.元素定位工具以及常用接口. 本文对 uiautomator2 框架 ...