- 浏览: 271905 次
- 性别:
- 来自: 天津
文章分类
- 全部博客 (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 845实现代码在附件中 1.自定义注解文件 package sgn ... -
统计多线程下程序运行总时间
2019-05-15 16:55 1135package com.gpcsoft.hct.epp.egp ... -
通过模板的方式解决缓存被击穿的问题
2019-04-15 11:35 4161. package gjp.tools; import c ... -
Rsa 加解密算法
2019-03-18 10:27 380package gjp.tools; /** * @Aut ... -
httpClient 使用http协议上传文件
2018-10-09 15:58 3108<dependency> <grou ... -
httpClient 使用HTTPS 协议上传文件
2018-09-30 14:50 2453<dependency> <group ... -
防止 XML外部实体注入
2018-09-18 17:03 7431方式一 DocumentBuilderFactory dbf ... -
httpClient 的https 调用
2018-06-20 21:07 841package com.gpcsoft.xjmodule.ut ... -
netty 实现长连接
2017-08-24 09:52 13181.server 端信息 package com.boce.n ... -
netty 开发入门
2017-08-22 14:30 6751.准备jar <properties> & ... -
nio 编程实例
2017-08-16 14:15 6041.编写服务端 package com.boce.nio.s ... -
jwt 生成token 和解析token
2017-06-06 16:45 5932<jjwt.version>0.6.0</j ... -
实现Java高并发隔离 模拟
2017-05-08 10:34 525package org; import java.util. ... -
java 命令
2017-04-20 16:42 425java 命令: java -Djava.ext.dirs ... -
nio 通讯
2017-04-01 15:41 532nio 服务端: package nio.study.se ... -
HashMap 便利时不按照输入顺序输出
2017-03-27 17:11 1965使用:hashmap传输数据时,便利map中的数据时,发现 ... -
使用Lock,对不同商品加锁
2017-03-13 10:52 1253package com.boce.gbkutf; ... -
json 转泛型的集合类
2017-03-07 16:21 1223package com.boce.test; ... -
httpclient4.5 使用post方式提交请求
2017-03-03 11:00 2033private RequestConfig req ... -
GBK与UTF-8 字符串互转
2017-02-24 11:17 2232package com.cloud.tools; i ...
相关推荐
在IT行业中,"猎狗demo测试"可能是指一个专门用于测试黑盒调用方法功能的示例项目。这个工具类的目的是验证不同组件或者服务之间的接口调用是否能正常工作,确保系统的稳定性和可靠性。"黑盒测试"是一种软件测试方法...
本文档《养猎犬心得精选.doc》正是为那些对养猎犬有浓厚兴趣的人士所编写,内容详实,心得深刻,从多个角度出发,为养猎犬者提供了宝贵的参考。 在选择猎犬的要素上,文档首先强调,无论哪种犬种,都有其独特的价值...
MATLAB 实验报告(猎狗追兔子的问题) 本实验报告主要介绍了使用 MATLAB 软件来解决微分方程的初值问题。通过建立简单微分方程数学模型,模拟了猎狗追兔子的问题。实验的目的是为了学习使用 MATLAB 软件求解微分...
这种方式旨在稳定员工的基本需求,同时鼓励他们追求更高的绩效。 8. **岗位差异与激励设计**:不同岗位的猎狗在分骨头时出现争议,表明管理者需考虑岗位差异,制定符合各个角色特点的激励政策。 9. **信任与监督**...
数学建模_猎狗追兔子问题.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. **职业发展与保障**:猎狗担心随着年龄增长无法捉到兔子时的待遇问题,反映了员工对职业发展和退休保障的需求。企业应考虑长期福利计划,消除员工...
在这个激励分析的经典案例——“猎狗的故事”中,主要探讨了激励机制在团队管理中的重要性和影响。故事的主人公是一位猎人,他通过不断调整激励政策来提高猎狗捕猎的效率和质量。 最初,猎人用一顿饭作为猎狗捕猎的...
欢迎来到猎犬追踪 :waving_hand: JS调用堆栈可视化JS调用栈可视化工具安装安装babel-plugin-hound-trace因为hound-trace实现原理是在函数中注入代码(无变量接收的函数表达式,匿名函数已过滤),所以需要配套安装此...
在这个激励分析猎狗的故事中,我们可以提取出一系列与管理和激励机制相关的知识点: 1. **目标与动力**:故事一开始,猎狗追捕兔子是为了获得一顿饭,而兔子则是为了生存。这表明个人动机(猎狗的食物)和目标...