博客
关于我
Day65.创建多线程的方式四-实现Callable接口与使用线程池方式 -Java多线程
阅读量:337 次
发布时间:2019-03-04

本文共 2589 字,大约阅读时间需要 8 分钟。

????????????Callable??????????

??Callable??

Callable??????Runnable???????????Runnable??????????????????Callable??????????call???????????????????????????????????????

???Callable??????????????

  • ??????Callable????????????Callable???
  • ??call????call?????????????????????????????
  • ??Callable????????new???????Callable??????
  • ?Callable?????FutureTask?????FutureTask????Callable?????????FutureTask?????
  • ?FutureTask?????Thread????????Thread????FutureTask????????????start()???????
  • ??call?????????FutureTask?get????call?????????????????get???????InterruptedException?ExecutionException???????????????
  • ???????Callable????????

    import java.util.concurrent.FutureTask;import java.util.concurrent.Callable;class NumThread implements Callable {    @Override    public Object call() throws Exception {        int sum = 0;        for (int i = 0; i <= 100; i++) {            if (i % 2 == 0) {                System.out.println(i);                sum += i;            }        }        return sum;    }}public class ThreadNew {    public static void main(String[] args) {        NumThread numThread = new NumThread();        FutureTask f = new FutureTask(numThread);        new Thread(f).start();        try {            Object o = f.get();            System.out.println("????" + o);        } catch (InterruptedException e) {            e.printStackTrace();        } catch (ExecutionException e) {            e.printStackTrace();        }    }}

    ???????

    ????????????????????????????????????????????????????

  • ????????????????????????????
  • ????????????????????????????
  • ?????????????????????????????????????????????
  • ??????????????????????

  • ??????????Executors.newFixedThreadPool(int)?????????????????????
  • ???????executorService.execute(Runnable)????Runnable??????????????Callable???????executorService.submit(Callable)???
  • ????????executorService.shutdown()?????????????
  • ????????????????

    import java.util.concurrent.Executors;import java.util.concurrent.ThreadPoolExecutor;class NumberThread implements Runnable {    @Override    public void run() {        for (int i = 0; i <= 100; i++) {            if (i % 2 == 0) {                System.out.println(Thread.currentThread().getName() + ": " + i);            }        }    }}public class ThreadPool {    public static void main(String[] args) {        ExecutorService executorService = Executors.newFixedThreadPool(10);        executorService.execute(new NumberThread());        executorService.execute(new NumberThread());        executorService.shutdown();    }}

    ??

    ????Callable????????????????????????????Callable?????????????????????????????????????????????????????

    转载地址:http://vyoq.baihongyu.com/

    你可能感兴趣的文章
    Openlayers Map事件基础及重点内容讲解
    查看>>
    Openlayers Select的用法、属性、方法、事件介绍
    查看>>
    Openlayers Source基础及重点内容讲解
    查看>>
    Openlayers view三要素(zoom,center,projection)及其他参数属性方法介绍
    查看>>
    Openlayers 入门教程(一):应该如何学习 Openlayers
    查看>>
    openlayers 入门教程(三):view 篇
    查看>>
    openlayers 入门教程(九):overlay 篇
    查看>>
    openlayers 入门教程(二):map 篇
    查看>>
    openlayers 入门教程(五):sources 篇
    查看>>
    openlayers 入门教程(八):Geoms 篇
    查看>>
    openlayers 入门教程(十三):动画
    查看>>
    openlayers 入门教程(十二):定位与轨迹
    查看>>
    openlayers 入门教程(十五):与 canvas、echart,turf 等交互
    查看>>
    openlayers 入门教程(十四):第三方插件
    查看>>
    openlayers 入门教程(四):layers 篇
    查看>>
    OpenLayers 项目分析(三)-OpenLayers中定制JavaScript内置类
    查看>>
    Openlayers中使用Cluster+Overlay实现点击单个要素和聚合要素时显示不同弹窗
    查看>>
    Openlayers中使用Cluster实现点位元素重合时动态聚合与取消聚合
    查看>>
    Openlayers中使用Cluster实现缩放地图时图层聚合与取消聚合
    查看>>
    Openlayers中使用Image的rotation实现车辆定位导航带转角(判断车辆图片旋转角度)
    查看>>