A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© taozhihui 中级黑马   /  2016-9-15 01:27  /  547 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

提交的是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的好处和弊端
                * 好处:
                        * 可以有返回值
                        * 可以抛出异常
                * 弊端:
                        * 代码比较复杂,所以一般不用

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马