首页 > 其他分享 >实现多线程的方法三

实现多线程的方法三

时间:2022-11-13 20:22:27浏览次数:42  
标签:实现 sum Callable futureTask call FutureTask 多线程 方法

package daybyday;
/*
好处:call()可以有返回值
call()可以抛出异常,被外面的操作捕获,获取异常的数值
Callable是支持泛型的
*/

import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.FutureTask;
/*
创建线程的方法三:实现Callable接口
1.创建一个实现Callable的实现类
2.实现call方法,将此线程需要执行的操作声明在call中
*/
class NumThread implements Callable{
public Object call() throws Exception {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 2 == 0) {
System.out.println(i);
sum += i;
}
}
return sum;
}
}


public class ThreadNew{
public static void main(String[] args) {
//3.创建Callable接口的实现类的对象
NumThread numThread = new NumThread();
//4.将此Callable接口实现类的对象作为传递到FutureTask构造器中,创建FutureTask的对象
FutureTask futureTask = new FutureTask(numThread);
//5.将FutureTask的对象作为参数传递到Thread类的构造器中,创建Thread的对象并调用start方法
new Thread(futureTask).start();

try {
//6.get的返回值,即为futureTask构造器Callable实现类重写的call()的返回值
Object sum = futureTask.get();
System.out.println(sum);
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}

标签:实现,sum,Callable,futureTask,call,FutureTask,多线程,方法
From: https://www.cnblogs.com/liujy2233/p/16886800.html

相关文章

  • 虚拟串口无法删除的处理方法
    问题表现:虚拟串口无法删除1、虚拟串口无法删除2、设备管理器里出现虚拟设备,禁用后任然无法消除 处理方法:1、拔掉硬件的串口设备2、打开注册表:计算机\HKEY_LOCAL_MAC......
  • 循环队列顺序表实现
    #include<stdlib.h>#include<stdio.h>#include<stdbool.h>#include<math.h>/**循环队列的顺序存储实现队列头在队列第一个元素前不指向元素队列尾是指向队......
  • 读者-写者问题(多线程)
    "读者-写者"问题实现读者和写者问题是一个经典的并发程序设计问题,是经常出现的一种同步问题。所谓读者写者问题,是指保证一个写进程必须与其他进程互斥地访问共享对象的同......
  • 第四章 高级特性——委托、事件、匿名方法和Lambda表达式
    4.1委托什么是委托?委托是一种知道调用方法的对象。delegateintDele(intx);classTest{staticintSquare(intx)=>x*x;staticvoidMain(){......
  • 读者-写者(多线程)
    题目1描述操作系统中“读者-写者”问题,理解问题的本质,提交你理解或查找到的文本资料2利用多线程完成reader和writer3在main中测试若干个reader和writer的测试,提交......
  • 1.举例说明常用的7中数据寻址方式和3中内存地址的寻址方式, 2.总结16、32和64位CPU的
    数据寻址方式:(1)立即寻址,MOVAX,1234H(2)寄存器寻址,寄存器寻址的特点是操作数在CPU内部的寄存器中,在指令中指定寄存器号(3)直接寻址,MOVES:[5678H],BL(4)寄存器间接寻址,MOV[......
  • 项目接口实现
    项目接口实现后台主页模块接口由原型图可分析,后台首页需要轮播图接口,推荐课程接口软件开发模式瀑布模式如:bbs项目先设计数据库,等数据库全部设计完毕后,开始写项......
  • Centos7 Mysql 双机热备实现数据库高可用
    mysql双主热备,也称主主互备,目的是mysql数据库高可用,只支持双机,原因是mysql的复制是一主多从,但一个从服务器只能有一个主服务器。双机热备的条件是双机mysql版本必须一致。服......
  • element ui-Dropdown 下拉菜单使用方法
     直接上代码: dropdown下拉列表,通常是 <el-dropdown-menu> 组件 <template><div><el-dropdown@command="handleCommand"><spanclass="el......
  • java.方法.learn
    1.方法:什么是方法,方法的格式,方法的好处  2.方法的格式:把一些代码打包在一起,用到的时候就调用 一:最简单方法定义和调用:  二:带参数的方法调用:    形......