首页 > 编程语言 > 详细

java 多线程

时间:2019-01-29 11:25:25      阅读:129      评论:0      收藏:0      [点我收藏+]

1:

ExecutorService executor = new ThreadPoolExecutor(5, 5, 60, TimeUnit.SECONDS, new LinkedBlockingQueue<Runnable>());
list.forEach(a -> {
    executor.submit(() -> {
        //    业务操作
    });

});
executor.shutdown();

try {
    boolean loop = true;
    do {
        loop = !executor.awaitTermination(2, TimeUnit.SECONDS);
    } while (loop);
} catch (InterruptedException e) {
    Loggers.BIZ.error("error", e);
}

2:

// 产生一个 ExecutorService 对象,这个对象带有一个大小为 poolSize 的线程池,若任务数量大于 poolSize ,任务会被放在一个 queue 里顺序执行。
ExecutorService executor = Executors.newFixedThreadPool(5);

for (Integer num = 0; num < 999; num++) {
    Runnable runner = new ThreadTest(num);
    executor.execute(runner);
}

executor.shutdown();
executor.awaitTermination(Long.MAX_VALUE, TimeUnit.MINUTES);
ThreadTest

/**
 * 多线程扩展方法
 * */
public class ThreadTest implements Runnable {
    /**
     * table对象
     */
    private Integer num;

    public RecognitionTableThread(Integer num) {
        this.num = num;
    }

    @Override
    public void run() {
        //    操作
    }
}

 

多线程原理和实现参考:Java并发编程:线程池的使用

 

java 多线程

原文:https://www.cnblogs.com/Cailf/p/10333112.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!