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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 唯我独赞mo 中级黑马   /  2015-11-13 16:09  /  413 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1、多线程实现的第三种方式:
    依赖java线程池,实现Callable接口
2、代码实现步骤:
   A:创建一个线程池对象,控制要创建几个线程对象。
       public static ExecutorService newFixedThreadPool(int nThreads)
   B:这种线程池的线程可以执行:
       可以执行Runnable对象或者Callable对象代表的线程
       做一个类实现Runnable接口。
   C:调用如下方法即可
       Future<?> submit(Runnable task)
       <T> Future<T> submit(Callable<T> task)
   D:结束线程方法
        shutdown()方法
3、方式3的优缺点
    A、优点:可以有返回值;可以跑出异常
    B、缺点:代码比较复杂,一般不用
代码如下:
public class Mycallable implements Callable{
        @Override
        public Object call() throws Exception {
                for(int x= 0; x<100;x++){
                        System.out.println(Thread.currentThread().getName()+":"+x);
                }
                return null;
        }
}
public static void main(String[] args) {
                // 创建线程池对象
                ExecutorService pool = Executors.newFixedThreadPool(2);
                // 可以执行Runnable对象或者Callable对象代表的线程
                pool.submit(new Mycallable());
                pool.submit(new Mycallable());
                // 结束
                pool.shutdown();
        }

0 个回复

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