- 浏览: 1379412 次
- 性别:
- 来自: 江西
文章分类
- 全部博客 (287)
- oracle (30)
- Java (73)
- MySQL (16)
- Myeclipse/eclipse (12)
- javascript (15)
- JSP/Servlet (7)
- maven (14)
- AJAX (2)
- JQuery (9)
- tomcat (8)
- spring (21)
- Linux (28)
- PHP (9)
- UI (1)
- 编程错误及处理 (38)
- 多线程 (18)
- hibernate (10)
- Web Service (3)
- struts2 (6)
- log4j (3)
- SVN (4)
- DWR (1)
- lucene (1)
- 正则表达式 (4)
- jstl (2)
- SSL (3)
- POI (1)
- 网络编程 (1)
- 算法 (2)
- xml (4)
- 加密解密 (1)
- IO (7)
- jetty (2)
- 存储过程 (1)
- SQL Server (1)
- MongoDB (1)
- mybatis (1)
- ETL (1)
- Zookeeper (1)
- Hadoop (5)
- Redis (1)
- spring cloud (1)
最新评论
-
ron.luo:
牛逼,正解!
maven设定项目编码 -
lichaoqun:
java.sql.SQLException: Can't call commit when autocommit=true -
Xujian0000abcd:
Thanks...
Cannot proxy target class because CGLIB2 is not available. Add CGLIB to the clas -
renyuan2ni:
[i][b][u]引用[list]
[*][img][flas ...
Manual close is not allowed over a Spring managed SqlSession -
851228082:
宋建勇 写道851228082 写道<!-- 文件拷贝时 ...
maven设定项目编码
/** * TraditionalTimer.java * cn.com.songjy.test.socket.thread * Function: TODO * * version date author * ────────────────────────────────── * 1.0 2013-8-15 songjy * * Copyright (c) 2013, TNT All Rights Reserved. */ package cn.com.songjy.test.socket.thread; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.Timer; import java.util.TimerTask; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** * ClassName:TraditionalTimer * * @author songjy * @version 1.0 * @since v1.0 * @Date 2013-8-15 下午9:33:29 */ public class TraditionalTimer { private static Log log = LogFactory.getLog(TraditionalThread.class); private static long count; public static void main(String[] args) { /************ 定时Bomb ***********/ new Timer().schedule(new TimerTask() { @Override public void run() { log.info("炸毁目标!"); } }, 10 * 1000l);// 10秒后炸毁目标 /************ 连环Bomb ***********/ new Timer().schedule(new TimerTask() { @Override public void run() { log.info("连环Bomb启动,目标销毁,哦也!"); } }, 10 * 1000l, 3 * 1000l);// 10秒后启动第一个Bomb,然后每隔3秒启动一个Bomb!(连环炸,够爽,o(∩_∩)o // 哈哈) /************ 子母Bomb ***********/ new Timer().schedule(new TimerTask() { @Override public void run() { log.info("母Bomb启动,目标销毁,哦也!"); new Timer().schedule(new TimerTask() { @Override public void run() { log.info("子Bomb启动,目标销毁,哦也!"); } }, 2 * 1000l); } }, 2 * 1000l); class MyBomb01 extends TimerTask { @Override public void run() { count = (count + 1) % 2; log.info("连环子母Bomb启动,目标销毁,哦也!"); new Timer().schedule(new MyBomb01(), 2 * 1000l + 2000 * count); } } /************ 连环子母Bomb一 ***********/ new Timer().schedule(new MyBomb01(), 2 * 1000l);// 第一个Bomb2秒后启动,间隔4秒后第二个Bomb启动,如此循环!(够狠的,嘻嘻) /************ 连环子母Bomb二 ***********/ new Timer().schedule(new MyBomb02(), 2 * 1000l);//第一个Bomb与第二个Bomb2秒后启动,第三个间隔4秒后启动,此后与上一个【连环子母Bomb一】一样的规律 String t = "2013-08-15 22:45:00"; Date firstTime = null; try { firstTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(t); } catch (ParseException e) { log.error(e.getMessage(), e); } /************ 定时Bomb,2013-08-15晚上10点45分,启动Bomb ***********/ new Timer().schedule(new TimerTask() { @Override public void run() { log.info("终于到了2013-08-15晚上10点45分,启动Bomb,目标销毁,任务完成,睡觉去,o(∩_∩)o 哈哈"); } }, firstTime); /************ 定时Bomb,每天晚上10点45分,启动Bomb ***********/ new Timer().schedule(new TimerTask() { @Override public void run() { log.info("现在又是晚上10点45分,启动Bomb,目标销毁,任务完成,又该睡觉去,(*^__^*) 嘻嘻"); } }, firstTime, 24 * 60 * 60 * 1000l); // 为了查看效果,可以添加以下代码 while (true) { log.info(Calendar.getInstance().get(Calendar.SECOND));// 输出当前的秒数 try { Thread.sleep(1 * 1000l); } catch (InterruptedException e) { log.error(e.getMessage(), e); } } } } class MyBomb02 extends TimerTask { private static Log log = LogFactory.getLog(MyBomb02.class); @Override public void run() { log.error("连环子母Bomb启动,目标销毁,哦也!"); new Timer().schedule(new MyBomb03(), 2 * 1000l); } } class MyBomb03 extends TimerTask { private static Log log = LogFactory.getLog(MyBomb03.class); @Override public void run() { log.error("连环子母Bomb启动,目标销毁,哦也!"); new Timer().schedule(new MyBomb02(), 4 * 1000l); } }
引自:http://down.51cto.com/data/443407
发表评论
-
java.io.NotSerializableException: java.util.ArrayList$SubList
2016-03-15 11:36 2862错误信息: 原代码: if (null != dto ... -
java.lang.NoSuchMethodError
2015-10-30 19:50 1230在执行命令 java -Djava.ext.dirs=./de ... -
OutOfMemoryError
2015-01-07 10:49 675错误信息: 执行命令(修改前): java -Djava. ... -
自定义ClassLoader
2014-12-14 17:13 886一、自定义类加载器代码: package foo; im ... -
ExecutorService.shutdown()应该是在线程执行完毕后,才会去关闭
2014-04-29 13:03 19572看到一个博客,如下 Jav ... -
URL传递中文参数乱码问题
2014-03-14 12:55 1153项目特殊要求,form表单使用get方式提交,由此出现了中文乱 ... -
Java使用正则进行奇偶替换
2013-12-30 11:20 1592/** * 将位于偶数位的数字1替换为2 */ ... -
Java调用ping命令
2013-11-26 10:26 3711package cn.com.songjy; impor ... -
Linux开机启动Java程序
2013-11-25 15:26 3586一、编写启动Java程序shell脚本(smssend.sh) ... -
单例模式
2013-11-05 09:58 789Java之美[从菜鸟到高手演变]之设计模式 Java开发中 ... -
判定2个对象相等之重写equals方法
2013-10-18 11:03 1095package cn.com.songjy.test; ... -
SAX解析XML文件示例
2013-09-13 17:32 1046package cn.com.songjy.test.xml; ... -
二分查找算法(Binary Search)
2013-09-13 17:01 2447项目中遇到需要从数组中查找数据,但是算法很多,于是根据项目需求 ... -
Iterate over rows and cells(EXCEL文件的读取)
2013-09-13 14:13 4096package cn.com.songjy.test.exce ... -
jdk1.5的Exchanger同步工具
2013-08-27 14:04 701package cn.com.songjy.test.sock ... -
jdk1.5的CountDownLatch同步工具
2013-08-27 13:37 812package cn.com.songjy.test.sock ... -
jdk1.5的Semaphere同步工具
2013-08-23 14:20 1092package cn.com.songjy.test.so ... -
jdk1.5条件阻塞Condition的应用
2013-08-23 09:42 1363package cn.com.songjy.test.sock ... -
jdk1.5读写锁技术的妙用
2013-08-19 22:00 1392/** * ReadWriteLockTest.java ... -
jdk1.5的线程锁技术
2013-08-19 20:25 962/** * LockTest.java * cn.co ...
相关推荐
资源名称:Java多线程与并发库高级应用视频教程22集资源目录:【】01传统线程技术回顾【】02传统定时器技术回顾【】03传统线程互斥技术【】04传统线程同步通信技术【】04传统线程同步通信技术_分割纪录【】05线程...
传统定时器技术回顾 - 定时器(`Timer`)类可以用来定期执行任务。 ##### 3. 传统线程互斥技术 - 线程间的互斥通常通过`synchronized`关键字或显式锁(`Lock`)来实现。 ##### 4. 传统线程同步通信技术 - 线程之间的...
这项设计旨在结合传统设计方法与现代电子设计自动化技术,以数字信号处理为核心,实现交通管理的自动化。 在第一章“课题背景”中,设计背景部分解释了交通信号灯对于维持交通秩序、提高道路通行能力和减少交通事故...
在传统的定时控制方式中,交通灯的红绿灯转换间隔是固定的,这往往会导致道路资源的浪费或交通拥堵。例如,设定东西方向60秒,南北方向40秒的通行时间可能无法适应实时的交通需求。而模糊控制技术虽然可以根据车辆...
单脉冲测量是数字频率计的核心技术,它通过捕捉输入信号的一个完整周期,然后利用单片机内部的定时器进行定时,计数器在预设的时间内记录输入信号的脉冲数。通过对这些数据的处理,可以计算出信号的频率。 **第 2 ...
在传统的JavaScript定时器(`setTimeout`或`setInterval`)中,异步请求可能无法按顺序返回结果,导致在进度条显示等场景中出现问题。而使用`interval`配合RxJS的管道方法,我们可以确保请求的顺序和响应的处理顺序...
程序运行结果展示了设计的实际效果,课程设计总结则对整个过程进行回顾和分析,可能包括遇到的问题、解决方案以及改进的建议。 在实际交通管理中,采用定时加中断控制的方式可以灵活调整信号灯的时间间隔,适应不同...
这种方法打破了传统单片机教学中先理论后实践的模式,通过一系列具体的实验项目来教授单片机的使用方法,使学习过程更加直观、高效。 - **教程内容**: - **上册**: 主要介绍单片机的基本原理、硬件连接、软件编程等...
传统的函数信号发生器主要产生正弦波、方波和锯齿波等标准波形,但特殊波形发生器价格较高。 本文档围绕基于51单片机设计的三角波信号发生器展开,该设计旨在产生多种波形,包括三角波、方波和正弦波,并允许用户...
1回顾Spring MVC的工作流程 2总结Spring MVC的数据绑定 3Spring定时器、拦截器的应用 4跟踪Spring源码,追踪解决问题 前后端分离开发 手把手演示如何串联React技术栈App和管理后台 让后台Form表单提交符合RESTful...
传统的舵机控制方法往往依赖于定时器中断来产生周期性的脉冲信号,从而控制舵机的转动角度。然而,为了达到更高的控制精度,我们需要对传统方法进行改进。 #### 二、基础知识回顾 - **51单片机**: 是一种广泛使用...
- **背景**: 随着社会进步和技术发展,传统的机械锁已经不能满足现代家庭对安全性的需求。电子密码锁因其更高的安全性和灵活性而受到青睐。 - **传统锁具的问题**: 传统锁具通常使用铜、铝、锌等材质,容易受到物理...
《Flash时钟:13款独特样式的魅力解析》 Flash技术在过去的互联网时代中扮演了重要的角色,尤其是在网页设计...尽管如今Flash逐渐被其他技术所替代,但这些作品仍值得我们回顾,从中汲取灵感,应用于新的技术环境中。
1. **单片机技术**:AT89S51D是一款基于8051内核的单片机,具备存储器、定时器/计数器、串行通信接口等多种功能,适合用于构建简单的电子系统。 2. **系统设计**:系统设计包括硬件和软件两部分。硬件部分主要涉及...
首先,"01_量化交易介绍.mp4"会涵盖量化交易的基本概念,包括为什么选择Python进行量化交易,Python在数据分析和金融领域的优势,以及量化交易与传统交易的区别。课程可能会讲解到回测、模拟交易、算法交易等核心...
在课题背景及设计目的中,文档阐述了传统抢答方式的局限性,比如使用举手回答的主观性和不公平性,并且提到了随着电子技术的发展,抢答器已经实现了从简单的机械或模拟电路到复杂数字电路的转型。设计者提出了通过...
- **字符集简史**:回顾字符集的发展历程,从ASCII到Unicode的转变。 - **宽字符和C**:探讨宽字符在C语言中的表示方法和使用技巧。 - **宽字符和WINDOWS**:讲解Windows环境下如何支持和处理宽字符。 #### 3. 窗口...
传统仪表在进行电压、电阻等参数测量时,通常需要手动切换量程,这种操作方式不仅繁琐,还可能导致测量误差或设备损坏。为了解决这一问题,现代电子测量系统趋向于更高的精度与智能化水平,其中全量程无档自动量程...