黑马程序员技术交流社区

标题: 多线程实现的第三种方式 [打印本页]

作者: taozhihui    时间: 2016-9-15 01:27
标题: 多线程实现的第三种方式
提交的是Callable
                // 创建线程池对象
                ExecutorService pool = Executors.newFixedThreadPool(2);
                // 可以执行Runnable对象或者Callable对象代表的线程
                Future<Integer> f1 = pool.submit(new MyCallable(100));
                Future<Integer> f2 = pool.submit(new MyCallable(200));
                // V get()
                Integer i1 = f1.get();
                Integer i2 = f2.get();
                System.out.println(i1);
                System.out.println(i2);
                // 结束
                pool.shutdown();

                public class MyCallable implements Callable<Integer> {
                        private int number;
                        public MyCallable(int number) {
                                this.number = number;
                        }
                        @Override
                        public Integer call() throws Exception {
                                int sum = 0;
                                for (int x = 1; x <= number; x++) {
                                        sum += x;
                                }
                                return sum;
                        }
                }
        * 多线程程序实现的方式3的好处和弊端
                * 好处:
                        * 可以有返回值
                        * 可以抛出异常
                * 弊端:
                        * 代码比较复杂,所以一般不用






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2