常见线程池和启动定时器线程池-笔记整理7
来源:互联网 发布:网络作家怎样赚钱 编辑:程序博客网 时间:2024/06/05 03:16
常见线程池和启动定时器线程池
1.线程池的概念:线程池是一种多线程处理形式,处理过程中将任务添加到队列,如果线程池中有空闲的线程,则由该线程去完成这些任务。
2.Excecutors类的应用
(1)创建固定大小的线程池:Executors.newFixedThreadPool(3);
(2)创建缓存线程池:Executors.newCachedThreadPool(3)
当任务扔进线程池中如果当前创建的线程不够来处理任务的话,就自动添加跟任务数量相等的线程。
(3)创建单一线程池:Executors.newSingleThreadExecutor();
跟创建单一线程并没有什么区别,但是它有一个好处,就是当这个线程死了以后,就会自动再创建一个替补线程。
3.线程池结束线程的方法:shutdown();与shutdownNow
shutdown():
shutdownNow():
4.用线程池启动定时器
(1)调用ScheduleExecutorService的schedule方法,返回的ScheduleFuture对象可以取消任务。
(2)支持间隔重复任务的定时方式,不直接支持绝对定时方式,需要转换成相对时间方式。
注意:scheduleAtFixedRate()这个方法里并没有传入Date这个参数的方法。
实例1:对三种常见线程池使用示例
public class ThreadPoolTest {public static void main(String[] args) {// TODO Auto-generated method stub //ExecutorService threadpool= Executors.newFixedThreadPool(3);ExecutorService threadpool= Executors.newCachedThreadPool(); for(int i=1;i<=10;i++){ final int task = i; threadpool.execute( new Runnable(){ public void run(){ for(int j=1;j<=10;j++){ try {Thread.sleep(100);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();} System.out.println(Thread.currentThread().getName() + " is looping of " + j + " for task of " + task); } } } );}}}
Executors.newScheduledThreadPool(3).scheduleAtFixedRate((new Runnable() {@Overridepublic void run() {System.out.println("bombing");}}), 10, 2,TimeUnit.SECONDS);
0 0
- 常见线程池和启动定时器线程池-笔记整理7
- 线程池和定时器
- JavaScript笔记整理——驯服线程和定时器
- JDK5线程池与用线程池启动定时器
- 线程池之定时器
- 线程池与定时器
- 用定时器启动线程
- Java线程和线程池学习笔记
- 线程池和线程的选择--笔记
- Android的线程和线程池 --笔记
- 【JavaSE学习笔记】多线程02_Lock,死锁,等待唤醒机制,线程组和线程池,Timer定时器
- Java定时器、线程池练习题
- 定时器Timer、线程(池)
- 多线程相关,线程池,定时器
- 在线程中启动定时器~
- Qt线程和定时器
- android 线程 和 定时器
- 线程和线程池
- 判定Java源文件名称
- Eclipse Project Explorer中不显示工程下目录
- LC 28
- css的权重(二)
- POJ3041Asteroids(二分图最大匹配)
- 常见线程池和启动定时器线程池-笔记整理7
- C++第4次作业
- Linux内核分析课程-- 理解进程调度时机跟踪分析进程调度与进程切换的过程
- Python:Tkinter之Radiobutton
- httpclient
- Water problem HDU
- ob缓存
- nginx 配置手机设备和pc设备请求不同的后台
- 【神经网络与深度学习】【计算机视觉】SPPNet-引入空间金字塔池化改进RCNN