首页 > 编程语言 > 详细

Callable接口实现线程

时间:2019-11-03 22:01:49      阅读:69      评论:0      收藏:0      [点我收藏+]
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()执行结束

Callable接口实现线程

原文:https://www.cnblogs.com/flgb/p/11788851.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!