Listing -. Calculating Euler’s Number e
import java.math.BigDecimal;
import java.math.MathContext;
import java.math.RoundingMode;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
public class CalculateE
{
final static int LASTITER = ;
public static void main(String[] args)
{
ExecutorService executor = Executors.newFixedThreadPool();
Callable<BigDecimal> callable;
callable = new Callable<BigDecimal>()
{
@Override
public BigDecimal call()
{
MathContext mc = new MathContext(, RoundingMode.HALF_UP);
BigDecimal result = BigDecimal.ZERO;
for (int i = ; i <= LASTITER; i++)
{
BigDecimal factorial =
factorial(new BigDecimal(i));
BigDecimal res = BigDecimal.ONE.divide(factorial,mc);
result = result.add(res);
}
return result;
} public BigDecimal factorial(BigDecimal n)
{
if (n.equals(BigDecimal.ZERO))
return BigDecimal.ONE;
else
return n.multiply(factorial(n.
subtract(BigDecimal.ONE)));
}
}; Future<BigDecimal> taskFuture = executor.submit(callable);
try
{
while (!taskFuture.isDone())
System.out.println("waiting");
System.out.println(taskFuture.get());
}
catch(ExecutionException ee)
{
System.err.println("task threw an exception");
System.err.println(ee);
}
catch(InterruptedException ie)
{
System.err.println("interrupted while waiting");
}
executor.shutdownNow();
}
}

JAVA Callable的更多相关文章

  1. Java Callable接口与Future接口的两种使用方式

    Java Callable.Future的两种使用方式Callable+Futurepublic class Test { public static void main(String[] args) ...

  2. Java Callable Future Example(java 关于Callable,Future的例子)

    Home » Java » Java Callable Future Example Java Callable Future Example April 3, 2018 by Pankaj 25 C ...

  3. 【Thinking in Java】Java Callable的使用

    Callable<>和Runable类似,都是用于Java的并发执行. 唯一的区别是,Runable的run方法的返回是void,而Callable的call方法是有返回值的. call方 ...

  4. 基于java callable及future接口解决生产者消费者问题

    这两天复习java线程时,把java里面的线程基本知识点与jdk1.5以后新添加的一些类的使用都了解了一下,借用生产者消费者的问题来将他们实践一下. 题目:(题目在csdn一大牛的空间找的) 生产者- ...

  5. java Callable创建线程

    package com.java.concurrent; import java.util.concurrent.Callable; import java.util.concurrent.Execu ...

  6. Java Callable使用

    1. 创建线程的三种方式: 继承Thread,重写run方法 实现Runnable接口,重新run方法 实现Callable接口,重写call方法 2. Callable接口实际上是属于Executo ...

  7. Java Callable接口、Runable接口、Future接口

    1. Callable与Runable区别 Java从发布的第一个版本开始就可以很方便地编写多线程的应用程序,并在设计中引入异步处理.Thread类.Runnable接口和Java内存管理模型使得多线 ...

  8. Java Callable和Future简述

    创建线程的两种方式,一种是直接继承Thread,另外一种就是实现Runnable接口.这两种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果.如果需要获取执行结果,就必须通过共享变量或者使用线程 ...

  9. Java Callable接口——有返回值的线程

    实际开发过程中,我们常常需要等待一批线程都返回结果后,才能继续执行.<线程等待——CountDownLatch使用>中我们介绍了CountDownLatch的使用,通过使用CountDow ...

随机推荐

  1. pl/sql developer 登陆提示ORA-12514(转)

      pl/sql developer 登陆提示ORA-12514 说明监听服务已经起来了 备注:通过 lsnrctl 命令来启动/停止/查看/重载监听器/服务 lsnrctl start|stop|s ...

  2. View、ViewGroup (转)

    Android原理揭秘系列之View.ViewGroup (转) Android的UI界面都是由View和ViewGroup及其派生类组合而成的.其中,View是所有UI组件的基类,而ViewGrou ...

  3. android webview与 java与javascript的交互

    webView.getSettings().setJavaScriptEnabled(true);//打开就可以用js的功能   webView.getSettings().setJavaScript ...

  4. python logging用法

    import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filename)s[line:%(line ...

  5. zookeeper理论

    第一章 Zookeeper server 1.1  Zookeeper基本原理 1.1.1    Zookeeper的保证 l         顺序性,client的updates请求都会根据它发出的 ...

  6. 简单几何(求交点) UVA 11437 Triangle Fun

    题目传送门 题意:三角形三等分点连线组成的三角形面积 分析:入门题,先求三等分点,再求交点,最后求面积.还可以用梅涅劳斯定理来做 /********************************** ...

  7. Count the string[HDU3336]

    Count the string Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) ...

  8. 在本地(Eclipse)运行第一个strom-starter例子

    一.在Eclipse中建立storm项目: 具体步骤如下: 1.在Eclipse中新建java project项目并导入jar包: File-> New -> Java Project - ...

  9. 【COGS】147. [USACO Jan08] 架设电话线(二分+spfa)

    http://cojs.tk/cogs/problem/problem.php?pid=147 学到新姿势了orz 这题求的是一条1-n的路径的最大路径最小. 当然是在k以外的. 我们可以转换一下. ...

  10. version `GLIBC_2.17' not found

    @ 今天把一个linux程序布到线上服务器上时,运行不起来,下面是解决思路. @ 运行程序,报以下错误 root@iZ25uck2l28Z:/tmp/tmp# ./speed_test ./speed ...