|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 smallFishBug 于 2017-6-30 09:03 编辑
Calendar类
抽象类,为特定瞬间与一组诸如年、月、日、小时等时间之间的转换提供了一些方法,并为操作时间提供方法
getInstance() 返回一个Calendar对象 当前时间
Add(f,delta) 将delta添加到f字段中 f可以为Calendar.SECOND delta可以为10 相当于当前时间加上10
ReentrantReadWriteLock类
运行效率比ReentrantLock类高 读写锁,一个读操作相关的锁,称为共享锁
一个写操作相关的锁,称为排他锁
多个读锁线程之间不互斥,读锁线程与写锁线程互斥,写锁线程与写锁线程之间互斥
读锁:lock.readLock().lock(); lock.readLock().unlock()
写锁:lock.writeLock().lock(); lock.writeLock().unlock()
定时器Timer
Timer类主要负责计划任务的功能,主要作用就是设置计划任务,TimerTask类负责封装任务
执行计划任务的代码要放入TimerTask的子类中 Task是放入队列中的
接口Runnable下
TimerTask类 抽象类
由Timer安排为一次执行或重复执行的任务 与Thread相似,内部有run()方法可重写
ParseException类 表示解析时出现意外错误
SimpleDateFormat类
构造方法:
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
方法:
parse(String text,ParsePosition pos)试图从pos给定的索引处开始的文本,解析字符串文本,生成Date
与Date结合使用 Date date1=sdf.parse(String text);
Timer类
方法:
Schedule(TimerTask task,Date time) 安排在指定的时间执行指定的任务
Schedule(TimerTask task,Date firstTime, long period) 安排在指定的任务在指定的时间开始重复的固定延迟执行
Schedule(TimerTask task,long delay) 安排指定延迟后执行指定的任务
Schedule(TimerTask task,long delay,long period) 安排指定的任务从指定的延迟后开始进行重复的固定延迟执行
如果计划时间早已经过去了,则会立即执行task任务 schedule()方法不具有追赶执行性
scheduleAtFixedRate(TimerTask task,Date firstTime, long period) 安排在指定的任务在指定的时间开始重复的固定延迟执行 与对应的schedule()方法差别,
当执行任务的时间没有被拖延:schedule() 下次任务执行时间参考上一次任务的开始时的时间计算
schedule()方法不具有追赶执行特性
scheduleAtFixedRate(TimerTask task,Date firstTime, long period)
下次任务执行时间参考上一次任务的结束时的时间计算
scheduleAtFixedRate()具有追赶执行特性(即使时间已经过去了,也从设定好的时间开始执行任务,追赶目前时间)
当任务的时间被拖延时:两者 下次任务执行时间参考上次任务结束时间计算
Cancel()方法将自身从任务队列中被移除,其他任务不受影响 有时没有抢到队列锁,所以任务还是正常执行
创建一个Timer就是启动一个新的线程,这个新启动的线程并不是守护线程,一直保持运行
Private static Timer timer=new Timer()
新创建一个Timer 改成守护线程
Private static Timer timer=new Timer(true)
Java多线程的笔记就做到这里了~ 《Java多线程》这本书还是挺有难度的,学完一遍,仔细想想,好像没记住什么,可怕~
暑假再学一次~! |
评分
-
查看全部评分
|