自制单机多线程查询器(改进)
来源:互联网 发布:高音质音乐软件 编辑:程序博客网 时间:2024/04/28 22:04
/**
* Java线程:多线程查询(改进)
*
* @author zaixing 2012-02-28 00:00:00
*/
public class Test3 {
public static boolean hit = false;
public static ExecutorService threadPool;
public static void main(String[] args) throws InterruptedException {
ExecutorService threadPool = Executors.newFixedThreadPool(5);
Callable<String> m1 = new MyCallable1("A");
Callable<String> m2 = new MyCallable1("B");
Callable<String> m3 = new MyCallable1("C");
Callable<String> m4 = new MyCallable1("D");
Callable<String> m5 = new MyCallable1("E");
Collection<Callable<String>> callableList = new ArrayList<Callable<String>>();
callableList.add(m1);
callableList.add(m2);
callableList.add(m3);
callableList.add(m4);
callableList.add(m5);
boolean flag = false;
try {
String f1 = threadPool.invokeAny(callableList,1,TimeUnit.MILLISECONDS);
System.out.println(f1);
System.out.println("****************");
return;
} catch (Exception e) {
System.out.println("Time out");
threadPool.shutdownNow();
flag = true;
}finally{
if(false == flag){
threadPool.shutdownNow();
}
}
}
}
/**
* 查询任务
*/
class MyCallable1 implements Callable<String>{
private String oid;
MyCallable1(String oid) {
this.oid = oid;
}
@Override
public String call() throws Exception {
for(int i = 0; i < 100000; i++);
return oid+"任务返回的内容";
}
* Java线程:多线程查询(改进)
*
* @author zaixing 2012-02-28 00:00:00
*/
public class Test3 {
public static boolean hit = false;
public static ExecutorService threadPool;
public static void main(String[] args) throws InterruptedException {
ExecutorService threadPool = Executors.newFixedThreadPool(5);
Callable<String> m1 = new MyCallable1("A");
Callable<String> m2 = new MyCallable1("B");
Callable<String> m3 = new MyCallable1("C");
Callable<String> m4 = new MyCallable1("D");
Callable<String> m5 = new MyCallable1("E");
Collection<Callable<String>> callableList = new ArrayList<Callable<String>>();
callableList.add(m1);
callableList.add(m2);
callableList.add(m3);
callableList.add(m4);
callableList.add(m5);
boolean flag = false;
try {
String f1 = threadPool.invokeAny(callableList,1,TimeUnit.MILLISECONDS);
System.out.println(f1);
System.out.println("****************");
return;
} catch (Exception e) {
System.out.println("Time out");
threadPool.shutdownNow();
flag = true;
}finally{
if(false == flag){
threadPool.shutdownNow();
}
}
}
}
/**
* 查询任务
*/
class MyCallable1 implements Callable<String>{
private String oid;
MyCallable1(String oid) {
this.oid = oid;
}
@Override
public String call() throws Exception {
for(int i = 0; i < 100000; i++);
return oid+"任务返回的内容";
}
}
注意:“System.out.println(f1);”在“String f1 = threadPool.invokeAny(callableList,1,TimeUnit.MILLISECONDS);”执行完之前是不会执行的。
- 自制单机多线程查询器(改进)
- 自制单机多线程查询器
- 自制SQL查询器
- 自制单机五子棋
- 自制小游戏,(根据java书进行改进的)
- 多线程文件传输改进(1)
- 自制蓝桥杯题库单机评测系统
- 多线程 Pipeline 的改进
- 多线程(六):线程的多次汇合控制改进版
- *Android 多线程下载 仿下载助手(改进版)
- 面试题 多线程安全队列的实现(改进版)
- 自制脚本语言(6) 解释器
- 网络编程-UDP多线程改进
- 改进后的多线程爬虫
- 黑马程序员——正则表达式(2)自制模糊查询
- 使用EditPlus自制的函数查询功能
- 自制光盘目录保存与查询软件
- 自制Python函数帮助查询小工具
- MFC使用GDI+,在对话框中的设置
- oracle alter 大全
- 软件企业中普遍存在问题
- 空气和水
- N年了,帮助N个公司,招聘N个程序员
- 自制单机多线程查询器(改进)
- Sigma Grid特性
- 色情暴力——媒体的毒瘤
- apache2不能启动的解决办法(提示could not bind to address 0.0.0.0:80)
- 如何调整MSN8.0界面的字体大小!
- 折腾来折腾去,又回到了最原始,走了一大圈还是发现瞎折腾了
- OpenCV学习笔记(四十三)——存取像素值操作汇总core
- sizeof和strlen
- 针对C#.NET各种代码生成器的一点小建议