zoukankan      html  css  js  c++  java
  • Callable接口实现线程

    public class CallableDemo {
        
        public static void main(String[] args) throws Exception, ExecutionException {
            FutureTask<String> futureTask = new FutureTask<>(new CallableThread());
            new Thread(futureTask,"A").start();
            System.out.println(futureTask.get());//会阻塞,等待执行结束
            System.out.println(Thread.currentThread().getName()+"线程执行结束!");
        }
    }
    
    class CallableThread implements Callable<String>{
    
        @Override
        public String call() throws Exception {
            // TODO Auto-generated method stub
            System.out.println("欢迎使用Callable接口");
            try {
                TimeUnit.SECONDS.sleep(3);
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
            return "Call()执行结束";
        }
        
    }

    执行结果:

    欢迎使用Callable接口

    (等待三秒后,才会打印下面)
    Call()执行结束
    main线程执行结束

    public class CallableDemo {
        
        public static void main(String[] args) throws Exception, ExecutionException {
            FutureTask<String> futureTask = new FutureTask<>(new CallableThread());
            new Thread(futureTask,"A").start();
            //System.out.println(futureTask.get());//会阻塞,等待执行结束
            System.out.println(Thread.currentThread().getName()+"线程执行结束!");
            System.out.println(futureTask.get());
        }
    }
    
    class CallableThread implements Callable<String>{
    
        @Override
        public String call() throws Exception {
            // TODO Auto-generated method stub
            System.out.println("欢迎使用Callable接口");
            try {
                TimeUnit.SECONDS.sleep(3);
            } catch (Exception e) {
                // TODO: handle exception
                e.printStackTrace();
            }
            return "Call()执行结束";
        }
        
    }

    main线程执行结束!

    欢迎使用Callable接口

    (等待三秒后,执行下面逻辑)
    Call()执行结束

  • 相关阅读:
    我的 vs code 中setting 设置
    创建Vue cli 脚手架中遇到的空格,函数问题的解决
    C#与.Net的关系
    c#可以开发哪些类型的应用程序
    json注解使用(jackson与fastjson)
    MySQL优化:如何避免回表查询
    二叉树基础知识总结
    Redis,Memcache,MongoDb的特点
    MySQL的InnoDB存储引擎为什么要用自增的主键?
    分布式事务atomikos使用
  • 原文地址:https://www.cnblogs.com/flgb/p/11788851.html
Copyright © 2011-2022 走看看