zoukankan      html  css  js  c++  java
  • JAVA Callable

    Listing 5-1. 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 = 17;
        public static void main(String[] args)
        {
        ExecutorService executor = Executors.newFixedThreadPool(1);
        Callable<BigDecimal> callable;
            callable = new Callable<BigDecimal>()
            {
                @Override
                public BigDecimal call()
                {
                    MathContext mc = new MathContext(100, RoundingMode.HALF_UP);
                    BigDecimal result = BigDecimal.ZERO;
                    for (int i = 0; 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();
            }
    }
  • 相关阅读:
    复制带有random指针的单链表
    loadrunner常见问题
    【转】性能测试、负载测试、压力测试的区别
    文件存储结构inode与RAM结构建立联系
    inode表元数据,存储在物理存储体上
    debug宏起作用应用
    linux内核常用函数或宏
    file、inode在应用层和驱动层之间的联系_转
    内核交互--sysfs
    内核交互--procfs
  • 原文地址:https://www.cnblogs.com/rojas/p/5366809.html
Copyright © 2011-2022 走看看