Callable 和 FutureTask

来源:互联网 发布:java管理系统源代码 编辑:程序博客网 时间:2024/05/20 07:17
public class Boss {    public static void main(String[] args) {        Worker worker = new Worker();        FutureTask<Integer> manager = new FutureTask<>(worker);        new Thread(manager).start();        while (!manager.isDone()) {            try {                System.out.println("看程序员写完了没");                Thread.sleep(1000);            } catch (InterruptedException e) {                e.printStackTrace();            }        }        int amount;        try {            amount = manager.get();            System.out.println("代码写完了 共 " + amount + " 行");        } catch (InterruptedException | ExecutionException e) {            e.printStackTrace();        }    }}class Worker implements Callable<Integer> {    private int hours = 5;    private int amount;    @Override    public Integer call() throws Exception {        while (hours > 0) {            System.out.println("程序员仍在加班加点敲代码");            amount++;            hours--;            Thread.sleep(1000);        }        return amount;    }}

输出结果

看程序员写完了没程序员仍在加班加点敲代码看程序员写完了没程序员仍在加班加点敲代码程序员仍在加班加点敲代码看程序员写完了没程序员仍在加班加点敲代码看程序员写完了没程序员仍在加班加点敲代码看程序员写完了没看程序员写完了没代码写完了 共 5
0 0
原创粉丝点击