【java多线程】分段阶乘计算
来源:互联网 发布:淘宝每日好店在哪里找 编辑:程序博客网 时间:2024/05/18 01:40
阶乘线程类:Factorial.java
需要返回值,故实现Callable接口,call()返回计算结果
import java.util.concurrent.Callable;public class Factorial implements Callable<Object>{ private long val1; private long val2; private long sum; private long time; public Factorial(long val1, long val2) { this.val1 = val1; this.val2 = val2; } public void sum() throws InterruptedException { long temp =val1; for (long i = 1; i < val2 - val1 + 1; i++) { temp *= (val1+i); } sum = temp; } @Override public Object call() throws Exception { System.out.println("线程 "+ Thread.currentThread().getName() + ":运行,计算"+val1+"~"+val2+"的阶乘"); long t1 = System.currentTimeMillis(); sum(); long t2 = System.currentTimeMillis(); time = t2 - t1; System.out.println("线程 "+ Thread.currentThread().getName() + ":结束,执行时间"+time+"ms"); return sum; } public long getTime() { return time; } public void setTime(long time) { this.time = time; }}
Main.java:
public class Main { public static void main(String[] args) throws InterruptedException, ExecutionException { Factorial c = new Factorial(1,10); FutureTask<Object> result = new FutureTask<Object>(c); new Thread(result).start(); Factorial c2 = new Factorial(11,20); FutureTask<Object> result2 = new FutureTask<Object>(c2); new Thread(result2).start(); long a = (long) result.get(); long b = (long) result2.get(); System.out.println("sum : "+(a*b)); }}
阅读全文
0 0
- 【java多线程】分段阶乘计算
- Java多线程分段下载
- java阶乘计算
- Java计算阶乘
- Java阶乘计算
- 计算大数阶乘--Java版
- java计算大数据阶乘
- 【java】计算N的阶乘
- java例子3:计算阶乘
- 【Java】递归算法计算阶乘
- [BASIC-30]-阶乘计算(java)
- java中四种阶乘的计算
- 用java来计算分段函数
- 【Java学习笔记】Java阶乘计算
- 【java学习记录】11.用多线程实现阶乘的计算过程和结果的读取(thread类ReadThread )
- Java算法 递归算法计算阶乘
- Java中计算大数的阶乘
- java算法 使用递归计算阶乘
- nodejs 文件变化侦听 ENOSPC异常
- 如何配置并排除 GRUB故障
- 关于ACM实验室纳新问题解答
- 第0次作业
- Docker源码分析(八):Docker Container网络(下)
- 【java多线程】分段阶乘计算
- Nginx网站常见的跳转配置实例
- 使用ArcGIS Runtime WPF SDK (1)创建自己的地图应用程序
- SpringBoot整合Dubbox(无XML配置)
- PCA的本质分析(泛数学原理)
- css如何让两个div高度一致
- JS(二十)前端表格控件Datalist2使用
- Vegas怎么给视频加水印、打码?
- H5自身的属性