本篇文章给大家带来了关于java的相关知识,主要介绍了java线程池的四种创建方式详细分析,连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用,下面一起来看一下,希望对大家有帮助。
推荐学习:《java视频教程》
在讲述线程池的前提 先补充一下连接池的定义
连接池是创建和管理一个连接的缓冲池的技术,这些连接准备好被任何需要它们的线程使用
立即学习“Java免费学习笔记(深入)”;
可以看到其连接池的作用如下:
线程池(英语:thread pool):一种线程使用模式。线程过多会带来调度开销,进而影响缓存局部性和整体性能。而线程池维护着多个线程,等待着监督管理者分配可并发执行的任务。这避免了在处理短时间任务时创建与销毁线程的代价。线程池不仅能够保证内核的充分利用,还能防止过分调度
特点:
其功能为:
重用存在的线程,减少对象创建、消亡的开销可有效控制最大并发线程数,提高系统资源的使用率,同时避免过多资源竞争,避免堵塞。提供定时执行、定期执行、单线程、并发数控制等功能。
具体其架构如下所示:
一共有4种创建方式分别为一池一线程、一池n线程、一池可扩容线程、一池定时及周期线程
Executors.newFixedThreadPool(int)一池N线程,控制最大的并发数,超出的线程会在队列中等待
ExecutorService threadPool1 = Executors.newFixedThreadPool(5); //5个窗口
Executors.newSingleThreadExecutor()一池一线程
ExecutorService threadPool2 = Executors.newSingleThreadExecutor(); //一个窗口
Executors.newCachedThreadPool()一池可扩容根据需求创建线程,可灵活回收空闲线程
执行完线程,可不用再扩建继续使用
ExecutorService threadPool3 = Executors.newCachedThreadPool();
Executors.newScheduledThreadPool(),支持定时及周期性任务执行
//表示延迟一秒,后执行3秒 ScheduledExecutorService scheduledThreadPool = Executors.newScheduledThreadPool(5); scheduledThreadPool.scheduleAtFixedRate(new Runnable() { @Override public void run() { log.info("delay 1 seconds, and excute every 3 seconds"); } }, 1, 3, TimeUnit.SECONDS);
推荐学习:《java视频教程》
以上就是简单归纳java线程池的四种创建方式的详细内容,更多请关注php中文网其它相关文章!
java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号