- 浏览: 154107 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
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 676int j = 0; j = j++; ... -
Google Guava Collections 使用介绍
2013-07-16 18:10 714Google Guava Collections 使用介绍 J ... -
Google Collections(Guava)中强大的Concurrent MapMaker
2013-07-16 18:07 1365仔细研究了刚发布1.0版本的Google Collection ... -
java wait 研究
2013-06-28 17:07 780[color=red]java wait 的使用必须放在实例对 ... -
java钩子函数的使用已经kill
2013-06-27 22:31 1557package com.aircoder.test; imp ... -
java获取所有的线程信息
2013-06-24 20:02 1604public class T2 { public sta ... -
java 获取mysql datetime 时间注意
2013-05-16 14:43 1523class SPubinfo implements RowMa ... -
java wait的解锁理解********
2013-04-18 10:49 947很多书都说wait会释放线程加的锁,其实经过试验不是这样的, ... -
jvm 关闭处理注册方法
2013-04-08 16:11 761import java.lang.*; public cla ... -
wget ftp 下载文件java代码
2013-04-05 15:16 1163private boolean wget(String fil ... -
xPath 解析xml
2013-04-05 15:14 739使用xPath 根据路径解析文件. xpath 具有多个版本。 ... -
java callable疑惑:
2013-04-05 15:12 585看了 线程持的源码和Futuretask的源码终于明白了 Fu ... -
ubuntu eclipse 问题
2013-04-05 03:30 797Eclipse 3.6 在 Ubuntu 10.04 下会出现 ... -
java park/unpark 【java并发】基于JUC CAS原理,自己实现简单独占锁
2013-03-27 16:47 2550LockSupport.park(); 停止 Sy ... -
ehchahe 例子
2013-01-23 15:40 1019package test; import net.sf.eh ... -
java 类加载
2012-12-24 15:21 7601: 访问一个类的静态方法的时候。不会引起一个类的初始化,即类 ... -
java 获取图片高和宽
2012-12-13 17:01 1402public static Map<String,Int ... -
java建立socket,返回浏览器的请求
2012-12-01 01:58 1029package com.jdk.api.test; impo ... -
ExecutorCompletionService
2012-11-19 22:36 714package com.jdk.api; import ja ...
相关推荐
Executors.newScheduledThreadPool(1).scheduleAtFixedRate(new Runnable() { public void run() { Integer number = NumberMachine.getInstance().getCommonManager().generateNewManager(); System.out....
Java 中的 Timer 类提供了两个常用的方法:schedule 和 scheduleAtFixedRate,用于安排和执行定时任务。虽然这两个方法看起来很相似,但是它们之间存在着重要的区别。本文将详细介绍这两个方法的区别,帮助读者更好...
使用`Timer`创建一个定时任务非常简单,主要通过`schedule`和`scheduleAtFixedRate`两个方法来实现。 1. `schedule(TimerTask task, long delay)`:此方法会在延迟指定的毫秒数后执行一次任务。 2. `...
本篇文章将深入探讨 `Timer` 类的两个核心方法:`schedule` 和 `scheduleAtFixedRate`,以及它们在实际开发中的应用。 首先,`schedule` 方法有两种重载形式,一种是安排一个 `TimerTask` 在特定的延迟后执行,另一...
该接口提供了两个方法,`schedule`和`scheduleAtFixedRate`,它们都能用于安排任务的执行,但具体的行为有所不同。本文将深入探讨这两个方法的异同。 1. **schedule方法** `schedule`方法用于一次性延迟执行任务,...
`Timer`的主要工作原理是维护一个任务队列(TaskList)和一个后台线程(TaskThread)。任务队列按任务的首次执行时间排序,TaskThread会持续检查并执行最早应执行的任务。以下是一个简单的`Timer`使用示例: ```...
在编程领域,定时器(Timer)是一个非常常见且重要的组件,尤其在实时系统、游戏开发、数据采集等场景中有着广泛的应用。Timer可以用来执行周期性的任务,或者在特定的时间间隔后触发某个事件。本教程将详细介绍如何...
创建一个`ScheduledExecutorService`,然后使用`scheduleAtFixedRate()`或`scheduleWithFixedDelay()`方法: ```java ScheduledExecutorService executor = Executors.newScheduledThreadPool(1); Runnable ...
5. `Timer.scheduleAtFixedRate(TimerTask task, Date firstTime, long period)`: 在指定的日期开始,以固定的速率(即两个执行之间的精确时间间隔)重复执行任务。 6. `Timer.scheduleAtFixedRate(TimerTask task, ...
创建一个`Timer`实例后,可以使用`schedule()`或`scheduleAtFixedRate()`方法安排任务的执行。 1. **创建定时器和任务** 创建`TimerTask`子类,重写`run()`方法,定义需要执行的任务。然后,创建`Timer`对象,并...
在这里,`Executors.newSingleThreadScheduledExecutor()`创建一个单线程的调度器,`scheduleAtFixedRate()`方法与之前提到的`Timer`类似,可以定期执行任务。 总的来说,Java提供了多种方式来实现秒表功能,可以...
当我们创建一个Timer对象时,实际上启动了一个后台线程,这个线程会不断地检查是否有任务需要执行。 `TimerTask`是`Timer`用来执行的任务接口,你需要创建它的子类并重写`run`方法来定义具体的任务内容。以下是一个...
Java中的定时器(Timer)是Java.util包下用于执行定期任务的一个类,它提供了一种在后台线程中定期执行任务的能力。这个功能对于需要在特定时间间隔执行操作的应用程序非常有用,比如心跳检测、数据刷新或者清理任务...
// 第二个参数为首次执行延迟,第三个参数为周期间隔 ``` 2. **Java 8的时间监听** Java 8引入了`java.time`包,提供了更加丰富的日期和时间API。你可以使用`ScheduledExecutorService`配合`Runnable`或`...
timer.scheduleAtFixedRate(new TimerTask() { @Override public void run() { Message message=new Message(); message.what=1; handler.sendMessage(message); } }, 1000,5000); 2.在线程中创建Handle
而在被动模式中,服务器开启一个随机端口并告知客户端,客户端再连接到这个端口进行数据传输。 Java FTP操作: 在Java中,我们可以使用`java.net.Socket`类和`java.io`流来实现FTP功能,但更常见的是使用Apache ...
`java.util.Timer` 类提供了一个调度任务的方法,而`TimerTask` 是一个抽象类,用于定义要在特定时间执行的任务。以下是如何使用它们的基本示例: ```java import java.util.Timer; import java.util.TimerTask; ...
创建一个`ScheduledThreadPoolExecutor`实例,然后使用`schedule()`或`scheduleAtFixedRate()`方法来调度任务。示例: ```java ScheduledExecutorService executor = Executors.newScheduledThreadPool(1); ...
在Android开发中,ViewPager是一个非常常用的组件,常用于实现页面滑动效果,比如在应用启动页、广告轮播图等场景。本知识点将详细介绍如何利用ViewPager实现图片自动轮播和无限循环的效果,使得用户体验更加流畅。 ...
本篇将详细讲解如何使用Android的ViewPager组件来构建一个自定义的图片轮播器。 **一、ViewPager组件** ViewPager是Android SDK中的一个强大的视图滑动容器,它允许用户左右滑动查看多个页面。在图片轮播器的实现...