`
文章列表

CyclicBarrier

    博客分类:
  • JDK
CyclicBarrier 官方解释:一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点(common barrier point).在涉及一组固定大小的线程程序中,这些线程必须不时地互相等待,此时CyclicBarrier很有用。因为barrier在释放等待线程后可以重用,所以称它为循环的barrier. CyclicBarrier支持一个可选的Runnable命令,在一组线程中的最后一个线程到达之后(但在释放所有线程之前),该命令只在每个屏障点运行一次。若在继续所有参与线程之前更新共享状态,此屏障操作很有用. CyclicBarrier和CountDownLatch不同,Cycl ...
一般比较正式的XML信息中都会包含对应的DTD声明,用来定义 该XML文档中的格式,例如WEB项目中用到的web.xml,例如struts的配置文件struts-config.xml,下面是web.xml中 用到的DTD信息: <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> 当我们用DOM或者Digester来解析这 ...
CountDownLatch 官法解释:一个对同步有帮助的类,它允许一个或多个线程等待只到这组操作在其他线程全部完成. 官司用法:初始是由一个给定的count,await方法可以阻塞只到当前count到达0.这是一个自减机制,比如你初始化 count为5,每调用一次countDown,就减1,只到为0,才释放所有线程,但是这种门插锁机制只有一次有效性,如果你想样多次使用,reset,那么推荐使用CyclicBarrier. 官法用例: 两个countdown latches: 1 阻止所有工人行动,只到司机到来才可以行动. 2 阻止司机行动,只到所有工人的工作都已经完成 packag ...
Enum 一般用来表示一组相同类型的常量.比如性别,月份,颜色等. 1.声名Enum Public enum Sex{ MAN, WOMAN } Public enum Color{ RED,BLUE,GREEN,BLACK } 2. 使用Enum JavaEnum简单的用法一般用于代表一组常量,可用来代码一类相同类型的常量值.[常量一般大写,注意规范] package org.yclframework.auth.test.dao.ibatis; public enum Sex { MAN("男"),WOMAN("女" ...
如果断Maven的依赖构建必须每一个项目都指定,那配置是累死人了,比如A依赖了20个项目,B依赖A,那么还要添加20个项目,那就悲剧了,maven有依赖传递的功能。 1、Transitive Dependency (传递依赖) 你的项目依赖于A,A又依赖于B。你的 ...
上一节建立了两个项目,依赖关系是由app项目提交jar到maven库中,然后wabapp加载依赖库实现的. 这一节介绍使用项目间的依赖关系,比如我这个项目必须与另一个项目共存,那么可以建立依赖关系. 以下是在两个项目的上级目录建立pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache. ...
maven 是开源项目构建的道选,众观开源项目,基本上被maven一统了。 现在我们就看看maven有何神奇之处: 1. 建立app的java项目 1. 首先到一个目录下,执行如下命令: D:\maven\demo>mvn archetype:create -DgroupId=com.test.app -DartifactId=app     执行这一步生成Java项目的目录结构. 2. 再生成Eclipse项目,执行如下命令 D:\maven\demo\ app >mvn eclipse:eclipse 3. 把项目导入Eclipse,然后修改App.java的代码如下: ...
SimpleTriggerBean: 简单触发器. startDelay: 指点一次执行时的延迟. jobDetail:  任务详情,不解释 jobDataAsMap:设置任务中的JobDataMap repeatCount: 重复次数[配置为0时执行一次] repeatInterval: 两次执行时的间隔 timesTriggered: 执行次数[没用过] (一般的任务定时调度使用SimpleTrigger就够了). 如何实现动态定时程序,比如,我设置A任务在2012年9月28日完成,B任务在2012年9月30日完成,如果到期还没有完成则发个邮件给我. 设计思路,创建一个方法,然后在自己的 ...
废话不多,看完以前的例子,直接点: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> <bean class="org.springframework.scheduling.quartz.Schedul ...
在任务高度中,当任务执行完后,可能要做一些事情,比如日志等. 上一节是执行固定次数的程序,监听的是Trigger,使用TriggerListner 这一节是执行完这个任务后执行日志,监听的是Job, 使用JobListener. 废话不多,代码如下: package test.quartz.spring; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import org.quartz.listeners.JobListenerSupport; public cl ...
Quartz实现固定执行次数 虽然上一讲中说明,在实际应用中很少用到Quartz实现固定执行次数,但是我就是那个钻牛角尖的人.废话不多,代码如下: 实现思路: 1. 在上一讲中说明Quartz的JobDetail可以是无状态的,也可以是有状态的。Trigger无状态的,所以只能使用JobDetail有状态的子接口StatefulJob.Job代码如下: package test.quartz.spring; import java.util.Date; import org.quartz.Job; import org.quartz.JobDataMap; import o ...
Quarz入门(三) 前面入程序的入门主要是让大家对quartz有个基础的认识,其使用并不复杂。 下面介绍Quarz的应用场景: 1.论坛 每隔半个小时生成精华文章的RSS文件 每天凌晨统计论坛用户的积分排名 每隔30分钟执行锁定用户解锁任务 ...
看完入门一程序,接下来接着讲解入门二. JobDetail jobDetail = new JobDetail(); jobDetail.setJobClass(QuartzReport.class); jobDetail.setName("MyJob_1"); jobDetail.setGroup("JobGroup_1"); 1、创建JobDetial对象,设置工作项,这里有一个概念,JobClass,Name,Group. 上一讲的初始化程序为 ...

Quarz入门(一)

public class QuartzReport implements Job { public void execute(JobExecutionContext cntxt) throws JobExecutionException { System.out.println("杨春龙,太帅了"); System.out.println( " Generating report - " + cntxt.getJobDetail().getJobDataMap().get("ty ...
Quartz入门例子 1.建立任务. public class QuartzReport implements Job { public void execute(JobExecutionContext cntxt) throws JobExecutionException { System.out.println("杨春龙,太帅了"); System.out.println( " Generating report - " + cntxt.getJobDetail().getJobDat ...
Global site tag (gtag.js) - Google Analytics