- 浏览: 148114 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
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 1135监控一个应用可以有很多好处,xxxxx 这里就不说了 不同应 ... -
JVM内存模型以及垃圾回收教程概述【转】
2011-01-18 15:21 989摘自:http://www.zhixing123. ... -
JAVA并发编程(一) 并发基础
2011-01-05 19:32 9744. 组合对象线程安全 4.1 设计线程安全的类 使用公共 ... -
[转]JAVA语言的反射和内省
2010-11-25 12:04 754转自: http://blog.csdn.net/ ... -
java 强、软、弱、虚引用
2010-11-18 22:54 10431.强引用 本章前 ... -
计算机常识:字符编码简介——ASCII、Unicode、UTF-8、GB2312
2010-11-03 14:40 1281字符编码简介:ASCII,Unicode,UTF-8,GB23 ... -
Apache Log4j配置说明
2010-10-25 21:00 698Apache Log4j配置说明 摘自Blog: http:/ ... -
初試 cglib
2010-04-25 21:00 751public class Man { public S ... -
java.lang.reflect 动态代理
2010-04-25 20:01 865public interface IReport { ... -
META-INF中的MANIFEST.MF的作用
2010-03-28 18:21 1244MANIFEST中的配置信息共有下面几类:一. 一般属性1. ... -
JAVA的容器---List,Map,Set
2009-12-22 22:09 742JAVA的容器---List Map Set Coll ... -
annotation 例子
2009-11-28 05:29 979@Retention : RetentionPolicy. S ... -
JAVA 同步 (一)
2009-11-09 21:36 703永远只能更新对象的成员变量时加锁 永远只能在访问有可能被更新对 ... -
JAVA中枚举(Enum)的系列文章 - 反向查找、总结
2009-05-12 14:00 1858转自:http://www.sinojava.co ... -
反射例子
2009-04-20 20:18 1028定义一个用户,作为被反射对象; public class Us ... -
两个反射的小例子
2009-04-15 16:04 935HashMap map = new HashMap(); ... -
utf转UnicodeBig
2008-12-23 20:06 941今天遇到一个奇怪的问题,代码如下: public ... -
ResourceBundle例子
2008-12-22 15:41 1486public class TestResourceBundle ... -
eclipse new class注释模板
2008-12-19 13:10 1417/** * @{#} ${file_n ... -
CountDownLatch 线程助手
2008-12-10 13:38 1179JAVA API (CountDownLatch) clas ...
相关推荐
Java多线程连续打印abc实现方法详解是 Java 编程语言中的一种常见问题,旨在解决三个线程同时执行,要求打印出10个连着的abc的难题。该问题的解决方案需要使用同步机制来确保三个线程的顺序执行。 知识点一:多线程...
顺序表在内存中是连续存储的,它的每个元素都有一个固定的索引位置,通常是从0开始。这种存储方式使得随机访问变得非常快速,因为元素可以通过索引直接访问。然而,插入和删除操作可能比较慢,因为可能需要移动大量...
例如,"ar -rv abc.a file1 file2"会将file1和file2添加到abc.a备存文件中。 2. at命令:用于在指定的时间执行一次性的任务。可以指定时间来运行命令或脚本。例如,"at 17:20 tomorrow"将指定在明天的17:20执行后续...
10. 打印缓冲区通常是一个队列结构,先进先出,确保数据按照顺序打印。 11. 循环队列中,删除一个元素后再加入两个元素,若初始rear=0,front=3,则操作后rear=2,front=4。 12. 栈的特性是后进先出,若a5=10,...
在建立二叉树时,用户需按先序顺序输入节点,例如输入"ABC##DE#G##F###",其中'#'表示空节点。输入的字符串被用来构建二叉树,每个字符代表一个节点,连续的字符间无分隔符表示它们之间存在边连接。 实验的基本要求...
- 然后连续两次`push`操作,分别将4和5压入栈中,栈顶指针变为1003H。 - 输出序列为23,最终栈顶指针为1003H。 **⑵ 栈通常采用的两种存储结构是(顺序存储结构和链接存储结构);其判定栈空的条件分别是(栈顶指针...
(x)&&(x<10),因为C语言的逻辑表达式不支持连续比较。 3. 逻辑运算符的优先级从高到低是:!、&&、||。这意味着先计算非(!),再计算与(&&),最后计算或(||)。 4. printf函数用于输出格式化的字符串。正确使用示例:...
顺序存储结构的数据元素存储在一块连续的内存区域,而链式存储结构的数据元素可以通过指针链接,不需连续存储。 2. 数据库操作:在数据库操作中,`OPEN DATABASE`命令用于打开数据库,例子中的`OPEN DATABASE abc`...
7. **八位二进制表示的十进制数**:能用八位二进制表示的无符号十进制数最大是255,因此只有199在这个范围内。 8. **计算机软件分类**:计算机软件系统主要分为系统软件和应用软件。系统软件包括操作系统、语言处理...
正确答案是D“1.0/a/b/c”,因为在浮点数运算中,通过连续除以a、b、c可以得到期望的结果。 ### 25. 目录操作命令 **知识点说明**: - **目录操作命令**:在操作系统中用于创建、删除、重命名目录的命令。 - **...
链队列是一种线性数据结构,它在物理存储单元上非连续、非顺序地存储数据元素,通过指针连接各个节点。在这个文档中,我们学习了如何使用链表实现链队列,包括链队列的基本运算:初始化、判断队列是否为空、入队、出...
17. 打印预览可以在打印前查看实际的打印效果,帮助调整布局和设置。 18. VFP(Visual FoxPro)支持的常量类型包括数值型、字符型、日期型和逻辑型。 19. `Ctrl+V`是Windows中常用的粘贴快捷键。 20. `Math`类中...
10. 文档保存:在Word中,打开文档ABC修改后另存为ABD,原文档ABC未被修改,保持原样,新保存的文档ABD包含修改。 11. 打开窗口控制菜单的快捷键:通常是Alt+Space。 12. 需求规格说明书作用:便于理解交流、反映...
这并没有改变并发执行的本质,但由于`printf()`函数会连续输出整个字符串,因此输出顺序将保持不变,只是每个进程打印的字符串长度增加。因此,屏幕可能显示"father, child, son",但同样,由于并发执行,实际的顺序...
18. `sprintf`的连续调用,字符串连接后输出是`abc100efg%d`,`printf`填充100。 19. 二叉树的前序遍历和中序遍历对应关系,可以推导出后序遍历是`dgebhfca`。 20. 插入元素时,需要移动`n-i+1`个元素。 21-25. `...
19. **DOS命令等价性**:互相等价的DOS命令组是B) COPY ABC.TXT+XYZ.TXT 与 TYPE XYZ.TXT >> ABC.TXT,都是将XYZ.TXT内容追加到ABC.TXT文件末尾。 以上知识点涵盖了计算机基础知识、计算机维护、ASCII码、计算机...
只有符合以下条件的组合才会被打印: •每个角色出现的次数不能超过3次•连续3个字符不能相同•连续3个字符不能连续(ABC) •连续3个字符不能为反向顺序(CBA) •字符2不等于字符1 •字符2不是字符1的+1 •字符2...
- **解析**:打印杨辉三角形的前10行,涉及到对杨辉三角形生成规律的理解,使用二维数组存储每一行的数据,以及循环结构控制打印格式。 #### 题目十六:学生成绩分析 - **知识点**:数组操作,条件判断,函数设计 -...