zoukankan      html  css  js  c++  java
  • JAVA 多线程 Callable 与 FutureTask:有返回值的多线程

    java多线程中,如果需要有返回值,就需要实现Callable接口。

    看例子:

    先建立一个Dowork这个类,就是平时某个业务的实现

    package com.ming.thread.one;
    
    import java.util.concurrent.Callable;
    
    /**
     * 
     * 定义一个具体做事情work
     * 线程运行完成后返回一个Stirng
     * @author ming
     *
     */
    public class Dowork implements Callable<String> {
    
        private int i=10;
        
        @Override
        public String call() throws Exception {
            while(i>0){
                System.out.println("i am work......"+i);
                i--;
                Thread.sleep(1000);
            }
            return "我做完了这次工作哦...";
        }
    
        
    }

    然后在我的测试类中,你可以看到要建立一个FutureTask这个任务调度,最后通过它可以获取线程执行的返回值.

    package com.ming.thread.one;
    
    import java.util.concurrent.ExecutionException;
    import java.util.concurrent.FutureTask;
    
    /**
     * 测试dowork的线程 
     * @author ming
     *
     */
    public class TestDowork {
    
        public static void main(String[] args) throws InterruptedException, ExecutionException {
            Dowork dowork=new Dowork();
            FutureTask<String> futureTask=new FutureTask<>(dowork);//新建一个检查dowork的线程任务
            new Thread(futureTask).start();
            while(!futureTask.isDone()){
                System.out.println("检查工作释放做完...");
                Thread.sleep(100);
            }
            String s=futureTask.get();
            System.out.println("获取追后返回值哦..."+s);
        }
    }

    ok,ok,ok。。。

  • 相关阅读:
    华为交换机端口安全
    华为路由交换命令收集
    Java使用JodaTime处理时间
    Java遍历Map对象的四种方式
    zabbix-2.4.8-1添加MySQL状态监控
    zabbix-2.4.8-1添加tcp状态监控
    zabbix-2.4.8-1添加nginx状态监控
    我的第四个Python小程序
    我的第三个Python小程序
    我的第二个Python小程序
  • 原文地址:https://www.cnblogs.com/huzi007/p/7053318.html
Copyright © 2011-2022 走看看