使用 JDK 5 后的线程并发,Callable, Future, ExecutorServie ...

被问及 Java 多线程,多会想到 Thread, Runnable,更通常是用 new Thread(){public void run(){...}}.start() 来启动一个线程。那都是 JDK 1.5 之前的年代了,现在还这么回答就 Out 了。用用  JDK 1.5 给我们带来的  java.util.concurrent 吧,更酷了。这里不涉及它的并发集合类,同步互斥机制,只说线程及线程池的应用举例。

1. 新的启动线程的方式:

    public static void main(String[] args) throws Exception {
        Callable<Integer> callable = new Callable<Integer>() {
            public Integer call() throws Exception {
                System.out.println("callable executed.");
                return new Random().nextInt(100);
            }
        };
        
        FutureTask<Integer> future = new FutureTask<Integer>(callable);
        new Thread(future).start();
        
        System.out.println("do your things here");
        
        System.out.println(future.get());
    }

阅读全文 >>

类别: Java/JEE. 标签: , , . 阅读(639). 评论(0) »