定时器Timer、线程(池)
来源:互联网 发布:boot repair ubuntu 编辑:程序博客网 时间:2024/05/20 17:08
定时器的使用:
题目:每隔两秒创建一个线程(线程总共创建5个线程),每个线程每隔两秒打印一句话(每个线程打印3句话)
涉及要点:线程(Thread)、线程池(ExecutorService)、synchronized(同步)
定时器(Timer):定时器timer调用schedule方法执行任务,第一个参数TimerTask是任务,第二个参数表示任务在多少秒后执行,第三个参数表示任务每隔多少秒执行一次(执行周期)。
用于标记次数的类Single1
package cn.lf.day090502;public class Single1 { public int index = 0;}
用于实现每个线程打印三句话的类MyThread3
package cn.lf.day090502;import java.util.Timer;import java.util.TimerTask;public class MyThread3 extends Thread{ public void run(){ timerTest(); } //同步 public synchronized void timerTest(){ Timer timer = new Timer(); Single1 s = new Single1(); timer.schedule(new TimerTask() { @Override public void run() { s.index++; //计数 System.out.println("线程:"+Thread.currentThread()); if (s.index == 3) { //public void cancel():终止计时器 timer.cancel(); } } }, 0, 1000); }}
测试类MyThread3Test
package cn.lf.day090502;/** * 定时器的使用: 题目:每隔两秒创建一个线程(线程总共创建5个线程),每个线程每隔两秒打印一句话(每个线程打印3句话) * */import java.util.Timer;import java.util.TimerTask;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;public class MyThread3Test { public static void main(String[] args) { Timer timer = new Timer(); //public interface ExecutorService extends Executor //ExecutorService继承于Executor的方法;void execute(Runnable command) //public class Executors extends Object //public static ExecutorService newFixedThreadPool(int nThreads) //创建一个可重用固定线程数的线程池 ExecutorService executorService = Executors.newFixedThreadPool(2); Single1 s = new Single1(); //public void schedule(TimerTask task,long delay,long period) timer.schedule(new TimerTask() { public void run() { s.index++; System.out.println("创建了线程"+(s.index)); //void execute(Runnable command) //command:被执行的任务 executorService.execute(new MyThread3()); if (s.index == 5) { //--方法--void shutdown() //启动一次顺序关闭,执行以前提交的任务,但不接受新任务。 executorService.shutdown(); timer.cancel(); //关闭定时器 } } }, 0, 2000); }}
程序运行结果:
阅读全文
0 0
- 定时器Timer、线程(池)
- Java线程-Timer定时器
- Timer TimerTask 定时器线程
- JAVASE总结--线程定时器Timer
- asp.net 线程定时器(Timer )的使用
- 自定义定时器(Timer)
- C#定时器(Timer)
- 线程同步通信与定时器Timer使用
- .线程同步通信与定时器Timer使用
- java线程系列---类中的定时器Timer
- Timer和TimerTask线程定时器用法
- 讲过多线程封装的定时器Timer
- 线程学习笔记(八)-定时器(Timer)
- 关于线程定时器Timer的启动
- Webkit定时器(Timer)分析
- (七)RxJava定时器:timer
- 异步处理(Handler)线程(Thread&Runnable)定时器(Timer)Wifi管理(WifiManager&WifiInfo)
- java中使用线程实现Timer(定时器)原理和源码
- [Leetcode] 394. Decode String 解题报告
- 深度学习之keras使用
- 杭电acm 1241Oil Deposits(dfs搜索入门题)
- POJ3278-Catch That Cow(bfs)
- Qt学习之路(20): 事件接收与忽略
- 定时器Timer、线程(池)
- php利用支付宝沙箱环境进行当面付测试
- Oracle DG测试failover和后续恢复报告
- andriod的可视化UI组件之下拉列表和常用适配器以及选中spinner的item的响应
- IDEA配置与常见问题
- 自制处理器OpenMIPS移植ucos-II过程之1——OpenMIPS介绍
- 漂亮的css文字效果
- 鼠标划入划出
- APP传递base64位编码后返回后查看乱码