java线程池笔记
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java线程池笔记,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2120字,纯文字阅读大概需要4分钟。
内容图文
![java线程池笔记](/upload/InfoBanner/zyjiaocheng/1257/3ac22649b98e461ea320c7615282ec68.jpg)
线程池的唯一好处:
线程池给开发者带来的唯一好处是允许多个线程按照组的模式进行程序的处理,这样在某一个业务逻辑复杂的环境下性能就会得到很好的提升
线程池:将多个线程封装在一起执行
从JDK1.5之后追加了一个并发访问的程序包:java.util.concurrent,对于此线程池操作的核心类和接口就定义在
此包当中,这里面有两个核心的接口:
1、普通的执行线程池定义:java.util.concurrent.ExecutorService
2、调度线程池(某些操作可以自动定时完成):java.util.concurrent.ScheduleExecutorService
如果要想进行线程池的创建,一般可以使用java.util.concurrent.Executors类完成
3、创建无大小限制的线程池:
4、创建固定大小的线程池
5、单线程池
6、创建定时调度池
二、创建各种线程池
1、创建无限大小的线程池
public class TestDemo {
public static void main(String[] args) throws Exception{
//现在创建了一个线程池的模型,但是里面现在没有线程
ExecutorService executorService = Executors.newCachedThreadPool();
for(int x = 0 ; x < 10 ; x++){
Thread.sleep(200);
int index = x;
executorService.submit(() -> {
System.out.println(Thread.currentThread.getName() + "、x=" + x);
});//执行线程的操作
}
executorService,shutdown();//关闭线程池
}
}
2、创建单线程池
public class TestDemo {
public static void main(String[] args) throws Exception{
//现在创建了一个线程池的模型,但是里面现在没有线程
ExecutorService executorService = Executors.newSingleThreadExecutor();
for(int x = 0 ; x < 10 ; x++){
int index = x;
executorService.submit(() -> {
System.out.println(Thread.currentThread.getName() + "、x=" + x);
});//执行线程的操作
}
executorService,shutdown();//关闭线程池
}
}
3、创建固定大小的线程池
public class TestDemo {
public static void main(String[] args) throws Exception{
//现在创建了一个线程池的模型,但是里面现在没有线程
ExecutorService executorService = Executors.newFixedThreadPool(3);
for(int x = 0 ; x < 10 ; x++){
int index = x;
executorService.submit(() -> {
System.out.println(Thread.currentThread.getName() + "、x=" + x);
});//执行线程的操作
}
executorService,shutdown();//关闭线程池
}
}
4、定时调度池
public class TestDemo {
public static void main(String[] args) throws Exception{
//创建一个具备有三个线程池大小的定时调度池
ScheduledExecutorService executorService = Executors.newScheduledThreadPool(3);
for(int x = 0 ; x < 10 ; x++){
Thread.sleep(3000);
int index = x;
executorService.scheduleAtFixedRate(new Runnable(){
@Override
Public void run(){
System.out.println(Thread.currentThread.getName() + "、x=" + index);
}
},3,2,TimeUnit.SECONDS);//使用的是一个秒的单位,表示3秒后开始执行,而后每2秒执行一次
}
executorService,shutdown();//关闭线程池
}
}
原文:https://www.cnblogs.com/jiehanshi/p/10779619.html
内容总结
以上是互联网集市为您收集整理的java线程池笔记全部内容,希望文章能够帮你解决java线程池笔记所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。