- 浏览: 144048 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
hacker_zxf:
最近再去看quartz实现,job都是new出来的,如果需要自 ...
Quartz--JAVA计划任务 -
hacker_zxf:
quartz 的扩展型做的不好,本来试图将表达式扩展成支持毫秒 ...
Quartz--JAVA计划任务 -
piaoxue_x:
嗯,看看。。。。貌似不错,谢谢了。。。
Quartz--JAVA计划任务 -
673341766:
麻烦你看一下 红色的信息是报错好吧.
Quartz--JAVA计划任务 -
helong0904:
...
spring quartz配置定时器
import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public class LoopWaitThreadTest { static AtomicInteger count = new AtomicInteger(0); private Lock lock = new ReentrantLock(); private Condition newCondition = lock.newCondition(); public static void main(String[] args) { LoopWaitThreadTest test = new LoopWaitThreadTest(); ThreadAAA a = test.new ThreadAAA("A"); ThreadBBB b = test.new ThreadBBB("B"); ThreadCCC c = test.new ThreadCCC("C"); a.start(); b.start(); c.start(); } class ThreadAAA extends ThreadTemplates { public ThreadAAA(String name) { super(name); } public void dowork() { try { lock.lock(); /** * 当调用newCondition.signalAll()时,会从newCondition.await()后面继续执行 * 所以必须要来个循环,否则会因为某些线程的此次循环早早的结束,而某些数字不能够消费掉导致死锁 例如: * A线程判断一个数字时,也许他还不满足条件,然后他等待,当其他线程调用signalAll时,该线程被唤醒,但是马上此次循环就结束了,因为await下面没有可以执行的 */ while (true) { System.out.println("lock A"); if (LoopWaitThreadTest.count.intValue() % 3 == 0) { System.out.println("A....."); LoopWaitThreadTest.count.incrementAndGet(); newCondition.signalAll(); break; } else { try { System.out.println("A wait"); // 当被唤醒时,从该方法之后开始执行 newCondition.await(); } catch (InterruptedException e) { e.printStackTrace(); } } } } finally { System.out.println("unlock A"); lock.unlock(); } } } class ThreadBBB extends ThreadTemplates { public ThreadBBB(String name) { super(name); } public void dowork() { try { lock.lock(); while (true) { System.out.println("lock B"); if (LoopWaitThreadTest.count.intValue() % 3 == 1) { System.out.println("B....."); LoopWaitThreadTest.count.incrementAndGet(); newCondition.signalAll(); break; } else { try { System.out.println("B wait"); newCondition.await(); } catch (InterruptedException e) { e.printStackTrace(); } } } } finally { System.out.println("unlock B"); lock.unlock(); } } } class ThreadCCC extends ThreadTemplates { public ThreadCCC(String name) { super(name); } public void dowork() { try { lock.lock(); System.out.println("lock C"); while (true) { if (LoopWaitThreadTest.count.intValue() % 3 == 2) { System.out.println("C....."); LoopWaitThreadTest.count.incrementAndGet(); newCondition.signalAll(); break; } else { try { System.out.println("C wait"); newCondition.await(); } catch (InterruptedException e) { e.printStackTrace(); } } } } finally { System.out.println("unlock C"); lock.unlock(); } } } abstract class ThreadTemplates extends Thread { public ThreadTemplates(String name) { super(); this.setName(name); } abstract void dowork(); public void run() { for (int i = 0; i < 10; i++) { System.out.println("current count is " + LoopWaitThreadTest.count.intValue()); dowork(); } } } }
发表评论
-
JAVA 应用监控
2011-11-17 15:09 1098监控一个应用可以有很多好处,xxxxx 这里就不说了 不同应 ... -
JVM内存模型以及垃圾回收教程概述【转】
2011-01-18 15:21 918摘自:http://www.zhixing123. ... -
JAVA并发编程(一) 并发基础
2011-01-05 19:32 9354. 组合对象线程安全 4.1 设计线程安全的类 使用公共 ... -
[转]JAVA语言的反射和内省
2010-11-25 12:04 720转自: http://blog.csdn.net/ ... -
java 强、软、弱、虚引用
2010-11-18 22:54 9731.强引用 本章前 ... -
计算机常识:字符编码简介——ASCII、Unicode、UTF-8、GB2312
2010-11-03 14:40 1215字符编码简介:ASCII,Unicode,UTF-8,GB23 ... -
Apache Log4j配置说明
2010-10-25 21:00 634Apache Log4j配置说明 摘自Blog: http:/ ... -
初試 cglib
2010-04-25 21:00 721public class Man { public S ... -
java.lang.reflect 动态代理
2010-04-25 20:01 821public interface IReport { ... -
META-INF中的MANIFEST.MF的作用
2010-03-28 18:21 1211MANIFEST中的配置信息共有下面几类:一. 一般属性1. ... -
JAVA的容器---List,Map,Set
2009-12-22 22:09 676JAVA的容器---List Map Set Coll ... -
annotation 例子
2009-11-28 05:29 934@Retention : RetentionPolicy. S ... -
JAVA 同步 (一)
2009-11-09 21:36 621永远只能更新对象的成员变量时加锁 永远只能在访问有可能被更新对 ... -
JAVA中枚举(Enum)的系列文章 - 反向查找、总结
2009-05-12 14:00 1809转自:http://www.sinojava.co ... -
反射例子
2009-04-20 20:18 983定义一个用户,作为被反射对象; public class Us ... -
两个反射的小例子
2009-04-15 16:04 889HashMap map = new HashMap(); ... -
utf转UnicodeBig
2008-12-23 20:06 906今天遇到一个奇怪的问题,代码如下: public ... -
ResourceBundle例子
2008-12-22 15:41 1451public class TestResourceBundle ... -
eclipse new class注释模板
2008-12-19 13:10 1377/** * @{#} ${file_n ... -
CountDownLatch 线程助手
2008-12-10 13:38 1141JAVA API (CountDownLatch) clas ...
相关推荐
java多线程每个线程挨着打印ABC的4种实现方式,有4个线程t1、t2、t3、t4,t1打印A后t2打印A再t3打印A再t4打印A,然后从新回到t1打印B再t2打印B...t4打印B... 4个线程轮流打印abc... 一个线程可以理解为一个人,打印...
使用多线程和阻塞队列实现了ABC字母按顺序轮流打印
主要介绍了Java多线程连续打印abc实现方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
数据库,不知道有没有用参照PPT课件绘制UML用例图、类图、活动图、状态图,及根据实际银行取款情况自行设计并绘制银行存款顺序图。
三个进程打印
用VC++实现打印文件,我们常常对对话框里的文件打印感到头痛,我这个代码就很好的解决了这个问题
然后在搜狗拼音的设置里面点击【高级】选项卡,有一个【自定义短语】的功能,进入后会发现原来智能ABC的字序都已经排好了,现在就可以保存了。完毕 注意:有些词可能有时不能被记录的用户词库 本文完全由本子自己...
微软拼音可导入的智能ABC的单子顺序 通过用户自定义短语导入
易语言POS机小票打印源码,POS机小票打印,abc,打开钱箱,串口打印
智能abc 5.22 智能abc 5.22 智能abc 5.22 智能abc 5.22 智能abc 5.22 智能abc 5.22 智能abc 5.22 智能abc 5.22
实现顺序表的基本运算以及调用这些基本运算的主函数,另外新增一些函数功能,例如删除顺序表某个元素,还有删除顺便表最大元素。1、实验环境:Windows 8 Dev-C++ 2、实验内容: (1)编写一个程序algo2-1.cpp,实现...
有三条线程,可以分别输出A、B、C字符,现想办法控制输出顺序,使得顺序为ABCABC......ABC[共10组],并且每条线程只能启动一次,不能多次启动。 需要3条线程输出不同的字符,分别为A、B、C,并且顺序要固定住:...
智能abc技巧智能abc技巧智能abc技巧智能abc技巧智能abc技巧智能abc技巧
音乐ABC PC软件可以安装在电脑上进行曲谱的快速输入,曲谱打印和曲谱导出。它能够匹敌Muse曲谱软件。它的主要功能包括:曲谱快速输入,简谱线谱切换显示,曲谱离线编辑,在线编辑,直接访问云端曲谱库,可以上传下载...
智能abc 5.23 智能abc 5.23 智能abc 5.23 智能abc 5.23 智能abc 5.23 智能abc 5.23 智能abc 5.23 智能abc 5.23
有三条线程,可以分别输出A、B、C字符,现想办法控制输出顺序,使得顺序为ABCABC......ABC[共10组],并且每条线程只能启动一次,不能多次启动。 通过一个标志位来处理的方式虽然可以实现效果,但是还不够安全,极...
ABC视频播放器 可以播放加密ABC文件,安全,绿色解压可直接安装。
ABC算法解决TSP旅行商问题,使用matlab语言,适应于ABC算法的初学者
abc格式视频播放器,专门播放abc格式视频的,很好用
3、提供完整的查询功能,如各种汇总及明细统计报表、ABC分析报表,且可如百度搜索般进行历史单据查询。 4、功能设计简单、流程清晰、易学易用、即输即打、无须专门培训即可快速上手。支持一客一价、一产品一价的...