韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > java基础 > java线程池创建方式

java线程池创建方式

java线程池创建方式

头像

小妮浅浅

2021-01-11 13:46:023671浏览 · 0收藏 · 0评论

在创建线程的使用,可以借用不同的Thread类解决,我们可以根据线程池的大小和其中的线程数量进行选择。这里给大家带来了四种方式:newCachedThreadPoolnewFixedThreadPoolnewScheduledThreadPoolnewSingleThreadExecutor。在接下来的内容中,我们会分别就这个方式的类型和代码示例带来分享。

1. newCachedThreadPool

创建一个线程池,如果线程池中的线程数量过大,它可以有效的回收多余的线程,如果线程数不足,那么它可以创建新的线程。

public static void method() throws Exception {    ExecutorService executor = Executors.newCachedThreadPool();    for (int i = 0; i < 5; i++) {        final int index = i;        Thread.sleep(1000);        executor.execute(new Runnable() {            @Override            public void run() {                System.out.println(Thread.currentThread().getName() + "  " + index);            }        });    }}

2. newFixedThreadPool

创建固定大小的线程池。每次提交一个任务就创建一个线程,直到线程达到线程池的大小。线程池的大小一旦达到值就会保持不变,如果某个线程因为执行异常而结束,那么线程池会补充一个新线程。

public static void method_01() throws InterruptedException {    ExecutorService executor = Executors.newFixedThreadPool(1);    for (int i = 0; i < 10; i++) {        Thread.sleep(1000);        final int index = i;        executor.execute(() -> {            try {                Thread.sleep(2 * 1000);            } catch (InterruptedException e) {                e.printStackTrace();            }            System.out.println(Thread.currentThread().getName() + "  " + index);        });    }    executor.shutdown();}

3. newScheduledThreadPool

创建一个大小的线程池。此线程池支持定时以及周期性执行任务的需求。

public class TestScheduledThreadPoolExecutor {
 
    public static void main(String[] args) {
 
        ScheduledThreadPoolExecutor exec = new ScheduledThreadPoolExecutor(1);
 
        exec.scheduleAtFixedRate(new Runnable() {//每隔一段时间就触发异常
 
                      @Override
 
                      publicvoid run() {
 
                           //throw new RuntimeException();
 
                           System.out.println("================");
 
                      }
 
                  }, 1000, 5000, TimeUnit.MILLISECONDS);
 
        exec.scheduleAtFixedRate(new Runnable() {//每隔一段时间打印系统时间,证明两者是互不影响的
 
                      @Override
 
                      publicvoid run() {
 
                           System.out.println(System.nanoTime());
 
                      }
 
                  }, 1000, 2000, TimeUnit.MILLISECONDS);
 
    }
 
}

4.newSingleThreadExecutor

单个线程的线程池,即线程池中每次只有一个线程工作,单线程串行执行任务。

public class MyThread extends Thread {
 
    @Override
 
    public void run() {
 
        System.out.println(Thread.currentThread().getName() + "正在执行。。。");
 
    }
 
}

以上就是java线程池创建方式,在创建之前,需要我们根据线程池的需求进行判断。学会了它们的概念后,赶快动手试试创建自己需要的线程池吧。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

BOBO浏览器(海外版)| 《医务室的小秘密》动漫第一季免...| 小雪被老汉各种姿势玩弄视频| 口咬二十八个图片高清| 女人被添荫蒂舒服了| 添女人荫蒂全部过程AV视频| 中文在线字幕观看电视剧| 开裆裤法国1980年| 苍老师最经典10部电影| 《年轻朋友的妻子3》| 《性呻吟》伦理| 日本校服| 黑色蕾丝女装大长腿| 久久久无码AV精品亚洲星娜美| 成全高清免费完整观看| 一个下面添一个上面是什么字| 男女睡过以后谁更想念| 父女一起到达巅峰的小说| 8848高清电影电视剧免费看| 我是宿舍里的寄吧套第四季免费看| 我的女上司| 《出差的日子》中文版| 男生把小困困放到女生困里视频| 7W7W77777的中文意思| 女性真人外生图片大全| 老师趴讲台把腿张开让学生背单词 | 五姑娘影院在线观看免费版电视剧 | 《我的漂亮老师2》| 高清国产少女免费观看电视剧| 女同学裸睡我把她奶头摸硬了| 美女和男生一起努力的生孩子视频.. | 灭火宝贝2:决战丛林| 大肉大捧一进一出视频的注意事项| 超短裙老师的好小好紧| 少妇高潮喷水久久久久久久久| 免费观看已满十八岁电视剧高清版| 俄罗斯少女2免费观看| 五姑娘影院在线观看免费版电视剧| 黑料门-今日黑料-每日大赛 | 《如狼似虎的女人》大结局| 动漫《纯洁的修女》在线看