- 浏览: 269699 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (183)
- oracle (4)
- informix (1)
- web开发 (6)
- java (49)
- hibernate (1)
- hadoop (1)
- spring (23)
- 非技术 (8)
- ibatis2 (5)
- Linux (6)
- tomcat (14)
- nginx (7)
- dubbo (3)
- myibatis (7)
- webservice 开发 (2)
- mysql (2)
- svn (2)
- redis (7)
- 分布式技术 (17)
- zookeeper (2)
- kafka (2)
- velocity (1)
- maven (7)
- js (1)
- freemarker (1)
- Thymeleaf (3)
- 代码审计 (1)
- ibatis3 (1)
- rabbitmq (1)
最新评论
package boce.hit.dog;
import java.util.concurrent.Callable;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.ThreadFactory;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;
public class FuncCourser {
private FuncCourser() {
}
private static ExecutorService executor = Executors
.newCachedThreadPool(new ThreadFactory() {
int nCount = 0;
public Thread newThread(Runnable task) {
nCount++;
Thread invokeThread = new Thread(task);
invokeThread.setName("Invoker-thread-" + nCount);
System.out.println("thread::"+nCount);
invokeThread.setDaemon(true);
return invokeThread;
}
});
/****
* 目标方法无返回值使用该方法调用
*
* @param task
* 调用代码
* @param unit
* 超时时间类
* @param timeout
* 时间
* @throws TimeoutException
* 调用超过指定的时间抛出此异常
*/
public static void call(Runnable task, TimeUnit unit, long timeout)
throws TimeoutException {
Future<?> futureResult = executor.submit(task);
try {
futureResult.get(timeout, unit);
} catch (Exception e) {
if (e instanceof TimeoutException) {
throw new TimeoutException("invoke timeout!");
}
throw new RuntimeException(e);
}
}
/*****
* 目标方法有返回值时使用该方法调用
*
* @param <T>
* @param task
* 调用代码
* @param unit
* 超时时间类型
* @param timeout
* 时间
* @return 被调用函数的返回值
* @throws TimeoutException
* 调用超过指定时间时抛出此异常
*/
public static <T> T call(Callable<?> task, TimeUnit unit, long timeout)
throws TimeoutException {
Future<?> futureResult = executor.submit(task);
Object callRet = null;
try {
callRet = futureResult.get(timeout, unit);
} catch (Exception e) {
if (e instanceof TimeoutException) {
throw new TimeoutException("invoke timeout!");
}
throw new RuntimeException(e);
}
return (T) callRet;
}
public static <T> T callRunnable(Runnable task, TimeUnit unit, long timeout)
throws TimeoutException {
Object result ="sucess";
Object obj = null;
Future<?> futureResult = executor.submit(task,result);
try {
obj = futureResult.get(timeout, unit);
System.out.println(obj+"====="+result);
} catch (Exception e) {
if (e instanceof TimeoutException) {
throw new TimeoutException("invoke timeout!");
}
throw new RuntimeException(e);
}
return (T)obj;
}
public static void main(String[] args) {
// //调用程序
// Callable<String> task = new Callable<String>(){
// @Override
// public String call() throws Exception {
// System.out.println("================="+Thread.currentThread().getName());
// Thread.sleep(2500);
// return "back";
// }
//
// };
//
// try {
// for(int i=0;i<1;i++){
// System.out.println(""+i);
// String str = FuncCourser.call(task, TimeUnit.SECONDS, 2);
// System.out.println("show:::"+str);
// }
// } catch (TimeoutException e) {
// e.printStackTrace();
// }
Runnable ru = new Runnable(){
@Override
public void run() {
try {
Thread.sleep(2500);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("test123456");
}
};
try {
for(int i=0;i<1;i++){
System.out.println(""+i);
System.out.println(FuncCourser.callRunnable(ru, TimeUnit.SECONDS, 3));
}
} catch (TimeoutException e) {
e.printStackTrace();
}
}
}
发表评论
-
aop实现通用缓存,并且防止缓存击穿
2019-09-16 15:10 796实现代码在附件中 1.自定义注解文件 package sgn ... -
统计多线程下程序运行总时间
2019-05-15 16:55 1098package com.gpcsoft.hct.epp.egp ... -
通过模板的方式解决缓存被击穿的问题
2019-04-15 11:35 4091. package gjp.tools; import c ... -
Rsa 加解密算法
2019-03-18 10:27 368package gjp.tools; /** * @Aut ... -
httpClient 使用http协议上传文件
2018-10-09 15:58 3102<dependency> <grou ... -
httpClient 使用HTTPS 协议上传文件
2018-09-30 14:50 2436<dependency> <group ... -
防止 XML外部实体注入
2018-09-18 17:03 7307方式一 DocumentBuilderFactory dbf ... -
httpClient 的https 调用
2018-06-20 21:07 808package com.gpcsoft.xjmodule.ut ... -
netty 实现长连接
2017-08-24 09:52 13091.server 端信息 package com.boce.n ... -
netty 开发入门
2017-08-22 14:30 6681.准备jar <properties> & ... -
nio 编程实例
2017-08-16 14:15 5971.编写服务端 package com.boce.nio.s ... -
jwt 生成token 和解析token
2017-06-06 16:45 5914<jjwt.version>0.6.0</j ... -
实现Java高并发隔离 模拟
2017-05-08 10:34 513package org; import java.util. ... -
java 命令
2017-04-20 16:42 416java 命令: java -Djava.ext.dirs ... -
nio 通讯
2017-04-01 15:41 525nio 服务端: package nio.study.se ... -
HashMap 便利时不按照输入顺序输出
2017-03-27 17:11 1954使用:hashmap传输数据时,便利map中的数据时,发现 ... -
使用Lock,对不同商品加锁
2017-03-13 10:52 1247package com.boce.gbkutf; ... -
json 转泛型的集合类
2017-03-07 16:21 1212package com.boce.test; ... -
httpclient4.5 使用post方式提交请求
2017-03-03 11:00 2014private RequestConfig req ... -
GBK与UTF-8 字符串互转
2017-02-24 11:17 2206package com.cloud.tools; i ...
相关推荐
在IT行业中,"猎狗demo测试"可能是指一个专门用于测试黑盒调用方法功能的示例项目。这个工具类的目的是验证不同组件或者服务之间的接口调用是否能正常工作,确保系统的稳定性和可靠性。"黑盒测试"是一种软件测试方法...
"养猎犬心得精选.doc" 本文档探讨了养猎犬的重要心得,涵盖了选择猎犬的要素、国外和国内猎犬的特点、实战后代的成材率、价格与质量的关系等方面。 首先,作者指出,不管是什么品种的狗,只要存在就有其存在价值。...
MATLAB 实验报告(猎狗追兔子的问题) 本实验报告主要介绍了使用 MATLAB 软件来解决微分方程的初值问题。通过建立简单微分方程数学模型,模拟了猎狗追兔子的问题。实验的目的是为了学习使用 MATLAB 软件求解微分...
这种方式旨在稳定员工的基本需求,同时鼓励他们追求更高的绩效。 8. **岗位差异与激励设计**:不同岗位的猎狗在分骨头时出现争议,表明管理者需考虑岗位差异,制定符合各个角色特点的激励政策。 9. **信任与监督**...
【“bushound“猎犬”】:在IT领域,BusHound是PeriSoft公司开发的一款强大的总线分析工具,它的名字来源于英文单词“hound”,直译为“猎犬”,寓意这款软件像猎犬一样灵敏,能够精确地捕捉到PC机上总线数据包的每...
数学建模_猎狗追兔子问题.doc
代理猎狗 2.6.25.绿色版,代理吸附,小巧,效率高,可自由添加吸附地址
《猎犬RSS订阅源系统 Ver 2.0》是一款基于源代码开发的系统,专用于RSS(Really Simple Syndication)订阅服务。RSS是一种互联网内容发布格式,它允许用户通过RSS阅读器或聚合器获取网站更新,无需直接访问网站。本...
代理猎狗,很好的代理工具,在线使用,更换代理等。
数学建模期末论文_猎狗追兔问题.doc 本文是关于数学建模期末论文的学生个人信息模板,内容包括个人信息、论文评分标准与结果、问题分析与假设、模型建立与求解、求解结果格式规行文表述总评分说明等。 论文的主要...
企业管理猎狗效应 企业管理中,猎狗效应是指由于奖惩措施的不当设计导致员工的工作动机和积极性下降的问题。本文通过一个故事来说明猎狗效应的出现和解决。 故事讲述了一个猎人和他的猎狗们之间的互动。猎人为了...
养猎犬的心得主要涉及了几个关键点:犬种选择、品种优缺点、实战与繁殖、价格与品质的关系。下面将详细阐述这些方面。 首先,犬种的选择并不是简单地追求最好,而是要根据实际需求来定。每个犬种都有其独特的特点和...
【MATLAB实验报告——猎狗追兔子的问题】 本次MATLAB实验旨在通过解决一个经典问题——猎狗追兔子,来学习和掌握使用MATLAB求解微分方程的初值问题,建立简单微分方程数学模型,以及了解计算机数据仿真和模拟的基本...
赤利是一条英勇、忠诚、善良的猎犬,它在狩猎中表现出非凡的勇气和智慧,但因为一次误会,被召盘巴误认为临阵脱逃,遭到了无情的惩罚。 在一次捕猎野猪的过程中,召盘巴因为踩到蛇蛋,面临眼镜蛇的攻击,而此时的赤...
CIM猎犬对POP3服务器验证的轮询间隔-Cisco 本文档介绍了如何验证和更改CIM猎犬对POP3服务器的轮询间隔。CIM猎犬是一个电子邮件收集工具,用于从POP3服务器上检索电子邮件。为了实现这个功能,CIM猎犬需要连接到POP3...
在动物的世界里,生存的竞争和对群体的归属感同样强烈,但它们的情感表达方式往往更加直接和真诚。赤利的故事提醒我们,不应轻易误解或评判动物的行为,因为它们可能有着我们无法理解的动机和牺牲精神。 同时,《第...
如同猎狗与兔子的故事所示,明确且具有挑战性的目标能够极大地激发员工的动力。人力资源部门需要协助企业和员工设定合理的目标,这些目标应具有SMART原则——具体(Specific)、可衡量(Measurable)、可达成(Achievable...
这种持续激励方式鼓励长期贡献,但依然未能解决老猎狗的问题。 5. **职业发展与保障**:猎狗担心随着年龄增长无法捉到兔子时的待遇问题,反映了员工对职业发展和退休保障的需求。企业应考虑长期福利计划,消除员工...
在这个激励分析的经典案例——“猎狗的故事”中,主要探讨了激励机制在团队管理中的重要性和影响。故事的主人公是一位猎人,他通过不断调整激励政策来提高猎狗捕猎的效率和质量。 最初,猎人用一顿饭作为猎狗捕猎的...