- 浏览: 136057 次
- 性别:
- 来自: 深圳
最新评论
-
wzk2111:
代码 可用,楼主的思路可以参考
javascript加密java解密 -
Imini123:
[align=center][color=red][/colo ...
freemarker实现通用分页,首页静态化,通用select,通用文章显示 -
igting:
js对+,@符号的加密应该有问题,java解密不对。
javascript加密java解密 -
Seanman:
初学freemarker,源码不全,不知道怎么用
freemarker实现通用分页,首页静态化,通用select,通用文章显示 -
无敌洋葱头:
目前这个只能对0-9 A-Z a-z加密,而且js还有问题。c ...
javascript加密java解密
package com.xxx.betcart.server.service.impl.threadmanager; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * 线程基本类 * * 记录线程开始时间/结束时间/ 线程名称/线程属性参数 * @project commonsTiger * @author alanpeng * @date 2011-1-7 * Copyright (C) 2010-2012 www.2caipiao.com Inc. All rights reserved. */ public abstract class BaseThread implements Runnable { private transient final Logger logger = LoggerFactory.getLogger(BaseThread.class); private Long startTime;//开始时间 private String threadName;//线程名字 private Long endTime;//结束时间 private Long removeDelay = 0l;//线程结束后多久移除管理,单位秒 private volatile boolean isRun;//线程是否运行中 /** * 只定义线程名, * 线程状态数据执行完成removeDelay秒后删除 * @param threadName * @param removeDelay 小于等于0执行完后删除 */ public BaseThread(String threadName, Long removeDelay) { this.threadName = threadName; this.removeDelay = removeDelay; } @Override public void run() { try { startTime = System.currentTimeMillis(); excuteTask(); endTime = System.currentTimeMillis(); } catch (Exception e) { logger.error("开奖线程异常。"); logger.error(e.getMessage(),e); } finally { logger.info("开奖线程状态数据移除。"); ThreadManage.removeThreadData(threadName); } } public abstract void excuteTask(); public Long getStartTime() { return startTime; } public void setStartTime(Long startTime) { this.startTime = startTime; } public String getThreadName() { return threadName; } public void setThreadName(String threadName) { this.threadName = threadName; } public Long getEndTime() { return endTime; } public void setEndTime(Long endTime) { this.endTime = endTime; } public Long getRemoveDelay() { return removeDelay; } public void setRemoveDelay(Long removeDelay) { this.removeDelay = removeDelay; } public boolean isRun() { return isRun; } public void setRun(boolean isRun) { this.isRun = isRun; } }
package com.xxx.betcart.server.service.impl.threadmanager; import java.util.HashMap; import java.util.Map; import java.util.concurrent.ScheduledThreadPoolExecutor; public class ThreadManage { public static ScheduledThreadPoolExecutor threadExec = new ScheduledThreadPoolExecutor(50); //key为唯一的标识 public static Map<String, BaseThread> map = new HashMap<String, BaseThread>(); /** * 执行线程,并把线程放入管理MAP中 * * @param thread * @create_time 2010-12-29 下午08:33:15 */ public static void excute(BaseThread thread) { map.put(thread.getThreadName(), thread); threadExec.execute(thread); } /** * 检查线程是否运行中 * @param threadName * @return T 是 F不是 * @create_time 2010-12-29 下午08:55:13 */ public static boolean isExcute(String threadName) { BaseThread thread = map.get(threadName); if (thread == null) { return false; } else { return true; } } /** * 删除线程数据 * @param threadName * @create_time 2010-12-29 下午09:46:48 */ public static void removeThreadData(String threadName) { map.remove(threadName); } /** * 遍历移除超时线程数据 * * @create_time 2010-12-29 下午09:58:15 */ public static void removeThreadDataTimeOut() { for (String name : map.keySet()) { BaseThread thread = map.get(name); if (thread.getEndTime() != null && thread.getRemoveDelay() > 0) { if (System.currentTimeMillis() > (thread.getEndTime() + thread.getRemoveDelay())) { removeThreadData(name); } } } } public static void main(String[] args) throws Exception { } }
package com.xxx.betcart.server.service.impl.threadmanager.thread; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.xxx.betcart.common.service.BetPlanPackageService; import com.xxx.betcart.server.service.impl.threadmanager.BaseThread; /** * 派奖线程 * * @project admin * @author alanpeng * @date 2011-6-2 * Copyright (C) 2010-2012 www.2caipiao.com Inc. All rights reserved. */ public class SychronizedPrizeThread extends BaseThread { private transient final Logger logger = LoggerFactory.getLogger(SychronizedPrizeThread.class); private long packageId; private BetPlanPackageService betPlanPackageService; public SychronizedPrizeThread(String threadName, long packageId, BetPlanPackageService betPlanPackageService) { super(threadName,0l); this.packageId = packageId; this.betPlanPackageService = betPlanPackageService; } public void excuteTask() { try { setRun(true); Thread.currentThread().setName(this.getThreadName()); betPlanPackageService.synchronousPrizeByPackageId(packageId); } catch (Exception e) { logger.error(e.getMessage(), e); } finally { setRun(false); } } }
发表评论
文章已被作者锁定,不允许评论。
-
ES聚合查询大全
2020-11-18 16:16 230package com.xxx.es; import ... -
spring中使用logback日志组件替换log4j
2015-04-29 15:27 912logback比log4j的强大之处,请到logback的主页 ... -
java加密解密
2015-02-10 15:05 1669package com.neo.xnol.weixin.u ... -
eclipse常用配置
2015-01-05 11:23 1187Eclipse常用配置介绍 以 ... -
分布式事务-幂等
2014-12-30 14:04 644引用 http://www.360doc.com/conten ... -
实现基于nginx的tomcat负载均衡和集群配置
2014-12-26 16:22 1059今天看到"基于apache的tomcat负载均衡和集 ... -
java导出Excel
2014-10-14 17:00 1063package com.xxxpiao.datacompa ... -
<base target="_self"/>标签的巧妙用法
2014-10-10 15:34 696最近项目中一个小问题卡了我不少时间。我遇到的问题是:在项目的弹 ... -
分布式一致性-幂等
2014-09-28 14:53 1032关于分布式系统的数据 ... -
ModelResult-查询封装类
2014-09-25 09:14 3485package com.xxx.appmodel.doma ... -
LDAP工具类
2014-09-05 10:12 851package com.xxxpiao.common.ut ... -
通过JNDI访问LDAP目录服务
2014-09-04 17:46 3058package com.sina.test; imp ... -
java获取两个日期之间的年月(yyyy-MM)和年月日(yyyy-MM-dd)
2014-07-29 14:42 1735public List<String> pro ... -
maven-.m2
2014-07-28 14:48 758<settings> <!--< ... -
maven实战
2014-07-07 10:04 721<settings> <!--< ... -
验证敏感词汇
2014-07-04 10:01 917package com.xxxpiao.core.memb ... -
Jms实战
2014-07-02 09:27 667<?xml version="1.0&qu ... -
互联网数功能位,表扩展(flagBit,feature)
2014-06-26 17:39 766<select id="queryRegT ... -
JDBC分批更新
2014-06-26 17:11 580@Override public boolean ba ... -
分批查询
2014-06-26 17:08 787package com.xxxpiao.common.ut ...
相关推荐
《Linux多线程服务端编程:使用muduo C++网络库》主要讲述采用现代C++在x86-64 Linux上编写多线程TCP网络服务程序的主流常规技术,重点讲解一种适应性较强的多线程服务器的编程模型,即one loop per thread。...
第11天 02 抽象类 Animal Cat Dog Program 02-抽象类 Animal Program 03抽象类练习 04复习 06接口 05设计模式 06序列化 07partial部分类 08sealed密封类 01面向对象-多态 第12天 01接口 02接口的特点 03接口练习 03...
自定SERIAL宏给抽象类使用 在CObList中加入CStroke以外的类 Document与View交流——为Step4做准备 第9章 消息映射与命令传递 到底要解决什么 消息分类 万流归宗Command Target(CCmdTarget) 三个奇怪的宏,一张巨大...
//包的定义 Import java.awt.Color //导入包关键字Import 4、接口 、接口的定义 Java中的接口可以看成是一种抽象类,它是一些抽象方法和常量的集合,其主要作用 是使得处于不同层次上以至于互不相干的类能够执行...
//包的定义 Import java.awt.Color //导入包关键字Import 4、接口 、接口的定义 Java中的接口可以看成是一种抽象类,它是一些抽象方法和常量的集合,其主要作用 是使得处于不同层次上以至于互不相干的类能够执行...
//包的定义 Import java.awt.Color //导入包关键字Import 4、接口 、接口的定义 Java中的接口可以看成是一种抽象类,它是一些抽象方法和常量的集合,其主要作用 是使得处于不同层次上以至于互不相干的类能够执行...
理解抽象方法,抽象类,具体类。 学会使用接口,接口中定义的数据与方法。学会实现接口。 辨别抽象类与接口的异同点。 清楚如何通过向上转型(引用的隐式转型),方法重写,运行期绑定来实现...
API 包—方面提供丰富的类与方法供大家使用,如画图形、播放声音等,另一方面又负责和系统软硬件打交道,圆满实现用户程序的功能。所有Java API 包都以“java.”开头,以区别用户创建的包。 常见Java系统包及其作用...
实例21 图形面积与周长(抽象类) 54 实例22 宠物结婚(封装) 56 实例23 一个盒子(继承) 58 实例24 学生的生活(多态) 60 实例25 员工薪资(接口) 62 实例26 我的类型(instanceof运算符) 66 实例27 ...
14.4.3 使用LightedGreenRoom抽象唤醒锁 14.5 长期运行的服务的实现 14.5.1 非粘滞性服务的细节 14.5.2 粘滞性服务的细节 14.5.3 非粘滞性的变体:重传送(redeliver)Intent 14.5.4 在...
14.4.3 使用LightedGreenRoom抽象唤醒锁 14.5 长期运行的服务的实现 14.5.1 非粘滞性服务的细节 14.5.2 粘滞性服务的细节 14.5.3 非粘滞性的变体:重传送(redeliver)Intent 14.5.4 在...
InputStream 是所有的输入字节流的父类,它是一个抽象类。 ByteArrayInputStream、StringBufferInputStream、FileInputStream 是三种基本的介质流,它们分别从Byte 数组、StringBuffer、和本地文件中读取数据。...
抽象类 115 万类之根:Object 119 类型的装箱和拆箱 121 嵌套类 124 第6章 操作符重载 127 使用operator关键字 127 支持其他.NET语言 128 创建有用的操作符 128 逻辑操作符对 129 等于操作符 129 转换操作符 130 第7...
抽象类 115 万类之根:Object 119 类型的装箱和拆箱 121 嵌套类 124 第6章 操作符重载 127 使用operator关键字 127 支持其他.NET语言 128 创建有用的操作符 128 逻辑操作符对 129 等于操作符 129 转换操作符 130 第7...
抽象类 115 万类之根:Object 119 类型的装箱和拆箱 121 嵌套类 124 第6章 操作符重载 127 使用operator关键字 127 支持其他.NET语言 128 创建有用的操作符 128 逻辑操作符对 129 等于操作符 129 转换操作符 130 第7...
:Serialize CArchive类 operator《和operator》 效率考虑 自定SERIAL宏给抽象类使用 在CObList中加入CStroke以外的类 Document与View交流——为Step4做准备 第9章 消息映射与命令传递 到底要解决什么 消息分类 万流...
自定SERIAL宏给抽象类使用 在CObList中加入CStroke以外的类 Document与View交流——为Step4做准备 第9章 消息映射与命令传递 到底要解决什么 消息分类 万流归宗Command Target(CCmdTarget) 三个奇怪的宏,一张巨大...
6.1.4 抽象方法、抽象类 173 6.2 继承语法细节 174 6.2.1 protected成员 174 6.2.2 重新定义的细节 176 6.2.3 再看构造函数 178 6.2.4 再看final关键字 180 6.2.5 java.lang.object 181 6.2.6 关于...
设计模式之 Template(模板方法) 实际上向你介绍了为什么要使用 Java 抽象类,该模式原理简单,使用很普遍. 设计模式之 Strategy(策略) 不同算法各自封装,用户端可随意挑选需要的算法. 设计模式之 Chain of ...
实例193 使用GregorianCalendar类获取系统的当前时间 326 实例194 使用SimpleDateFormat类获取系统的当前时间 329 实例195 显示某年某月某一周的信息 330 实例196 显示某年某月的信息 332 实例197 ...