- 浏览: 146122 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
lyaqys:
lz实现的OptimisticExclusiveLock有点问 ...
java park/unpark 【java并发】基于JUC CAS原理,自己实现简单独占锁
我们经常使用的java定时器单线程执行,例如:
一个任务每个一秒中执行一次,加入在50秒的任务没有执行完毕,后续任务无法执行
防止这种策略的是:
在内部在开一个线程,做你想做的事:
public class SchedulePool {
private static ScheduledExecutorService schedulePool = Executors.newScheduledThreadPool(8);
/**
* @param args
*/
static int i =0;
public static void main(String[] args) {
schedulePool.scheduleAtFixedRate(new Thread() {
@Override
public void run() {
try {
System.out.println("运行了一次。。。。。。。"+(i++));
int i=0;
new Thread(new Runnable(){ // 内部在开一个线程,就不会因为上一次任务没有结束人等待了,才可以做到并行执行。
public void run(){
while(true){
Thread.yield();
}
}
}).start();
System.out.println("over------------------>>>>>>>>>>>>>>>>>>>>>.");
/*while(true){
Thread.yield();
}*/
/*while(i<=0){
i++;
Thread.sleep(1000*120);
}*/
} catch (Exception e) {
e.printStackTrace();
}
}
}, 1, 2, TimeUnit.SECONDS);
}
}
一个任务每个一秒中执行一次,加入在50秒的任务没有执行完毕,后续任务无法执行
防止这种策略的是:
在内部在开一个线程,做你想做的事:
public class SchedulePool {
private static ScheduledExecutorService schedulePool = Executors.newScheduledThreadPool(8);
/**
* @param args
*/
static int i =0;
public static void main(String[] args) {
schedulePool.scheduleAtFixedRate(new Thread() {
@Override
public void run() {
try {
System.out.println("运行了一次。。。。。。。"+(i++));
int i=0;
new Thread(new Runnable(){ // 内部在开一个线程,就不会因为上一次任务没有结束人等待了,才可以做到并行执行。
public void run(){
while(true){
Thread.yield();
}
}
}).start();
System.out.println("over------------------>>>>>>>>>>>>>>>>>>>>>.");
/*while(true){
Thread.yield();
}*/
/*while(i<=0){
i++;
Thread.sleep(1000*120);
}*/
} catch (Exception e) {
e.printStackTrace();
}
}
}, 1, 2, TimeUnit.SECONDS);
}
}
发表评论
-
java 栈内存解惑
2013-10-23 23:41 638int j = 0; j = j++; ... -
Google Guava Collections 使用介绍
2013-07-16 18:10 650Google Guava Collections 使用介绍 J ... -
Google Collections(Guava)中强大的Concurrent MapMaker
2013-07-16 18:07 1298仔细研究了刚发布1.0版本的Google Collection ... -
java wait 研究
2013-06-28 17:07 735[color=red]java wait 的使用必须放在实例对 ... -
java钩子函数的使用已经kill
2013-06-27 22:31 1511package com.aircoder.test; imp ... -
java获取所有的线程信息
2013-06-24 20:02 1564public class T2 { public sta ... -
java 获取mysql datetime 时间注意
2013-05-16 14:43 1475class SPubinfo implements RowMa ... -
java wait的解锁理解********
2013-04-18 10:49 886很多书都说wait会释放线程加的锁,其实经过试验不是这样的, ... -
jvm 关闭处理注册方法
2013-04-08 16:11 725import java.lang.*; public cla ... -
wget ftp 下载文件java代码
2013-04-05 15:16 1088private boolean wget(String fil ... -
xPath 解析xml
2013-04-05 15:14 700使用xPath 根据路径解析文件. xpath 具有多个版本。 ... -
java callable疑惑:
2013-04-05 15:12 544看了 线程持的源码和Futuretask的源码终于明白了 Fu ... -
ubuntu eclipse 问题
2013-04-05 03:30 735Eclipse 3.6 在 Ubuntu 10.04 下会出现 ... -
java park/unpark 【java并发】基于JUC CAS原理,自己实现简单独占锁
2013-03-27 16:47 2475LockSupport.park(); 停止 Sy ... -
ehchahe 例子
2013-01-23 15:40 942package test; import net.sf.eh ... -
java 类加载
2012-12-24 15:21 7031: 访问一个类的静态方法的时候。不会引起一个类的初始化,即类 ... -
java 获取图片高和宽
2012-12-13 17:01 1325public static Map<String,Int ... -
java建立socket,返回浏览器的请求
2012-12-01 01:58 957package com.jdk.api.test; impo ... -
ExecutorCompletionService
2012-11-19 22:36 663package com.jdk.api; import ja ...
相关推荐
Executors.newScheduledThreadPool(1).scheduleAtFixedRate(new Runnable() { public void run() { Integer number = NumberMachine.getInstance().getCommonManager().generateNewManager(); System.out....
timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { Message message=new Message(); message.what=1; handler.sendMessage(message); } }, 1000,5000); 2.在线程中创建Handle
Java定时任务schedule和scheduleAtFixedRate的异同
NULL 博文链接:https://michael1990.iteye.com/blog/2113141
主要为大家详细介绍了java中timer的schedule和scheduleAtFixedRate方法区别,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
串行执行器服务 ScheduledExecutorService 的测试实用程序实现 允许测试如下代码: ... service.scheduleAtFixedRate(new Runnable() { @Override public void run() { count++; bar.doWhatever(); } },
scheduledExecutorService.scheduleAtFixedRate(new ScrollTask(), 1,2, TimeUnit.SECONDS); super.onStart(); } @Override protected void onStop() { //当Activity不可见的时候停止切换 ...
timer.scheduleAtFixedRate(new TimerTask() { int j=0; int i=0; @Override public void run() { if(over==true){ return; } handler.sendEmptyMessage(kPostInvalidate); i=i+...
Java中的Timer和TimerTask简介...另一种执行任务的模式是scheduleAtFixedRate。在这种模式下,Timer类会尽量使任务保持在一个固定的频率下重复执行。 TimerTask一个抽象类,它的子类代表一个可以被Timer计划的任务。
调度可以用 Timer 【调用 schedule() 或者 scheduleAtFixedRate() 方法实现】或者 ScheduledExecutorService 【结合工作中其它的需求,笔者选用此】 ScheduledExecutorService的初始化(线程池):
调用scheduleAtFixedRate()方法或者scheduleWithFixedDelay()方法时,会向DelayQueue添加一个实现了RunnableScheduledFuture接口的ScheduledFutureTask
定时删除文件,导入库类有Timer类,TimeTask类,运用的函数有:scheduleAtFixedRate()。