package preschedule;
import java.util.concurrent.*;
public class TaskTest {
public static void addToPreScheduleTaskQueue(ExecutorService exec) {
TaskPreScheduler mapTaskPreScheduler = new TaskPreScheduler();
Future<Boolean> future = exec.submit(mapTaskPreScheduler);
Boolean taskResult = null;
try {
taskResult = future.get(100, TimeUnit.MICROSECONDS);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ExecutionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TimeoutException e) {
// TODO Auto-generated catch block
future.cancel(true); //
System.out.println(" preSchedule: interrupted! Over Time Limit! ");
} finally {
exec.shutdownNow();
}
// 这里判断是否预调度成功,并作相应处理
if (taskResult == true) // 未超时,TP成功完成
{
System.out.println(Thread.currentThread().getName() + " preSchedule Succeeded! ");
} else
System.out.println(" preSchedule Failed! ");
}
public static void main(String argv[]) throws Exception {
ExecutorService exec = Executors.newCachedThreadPool();
addToPreScheduleTaskQueue(exec);
}
}
class TaskPreScheduler implements Callable<Boolean> {
public TaskPreScheduler()
{
// System.out.println(Thread.currentThread().getName() + " TaskPreScheduler created! ");
}
@Override
public Boolean call() throws Exception {
// TODO Auto-generated method stub
System.out.println( Thread.currentThread().getName() +" preschedule called!");
return true;
}
}
分享到:
相关推荐
看完《think in java》多线程章节,自己写的多线程文档,还...12)异步计算的结果Future 40 13)安排线程池ScheduledExecutorService 40 五多线程面试题 41 六其他主题 41 1)ReentrantLock和synchronized关键字的区别 41
11.2.1 ServerSocket与Socket示例: 开发一个Server-Client模型的程序 291 11.2.2 多点传送示例 293 11.2.3 打造你自己的QQ 295 11.3 小结 315 第12章 找个好管家——JMX 317 12.1 讲解 318 12.1.1 什么是 JMX...
11.2.1 ServerSocket与Socket示例: 开发一个Server-Client模型的程序 291 11.2.2 多点传送示例 293 11.2.3 打造你自己的QQ 295 11.3 小结 315 第12章 找个好管家——JMX 317 12.1 讲解 318 12.1.1 什么是 JMX...
第23章 应用程序设计 435 23.1 回顾之前的内容 435 23.2 注解 437 23.3 Trait即模块 441 23.4 设计模式 442 23.4.1 构造型模式 443 23.4.2 结构型模式 443 23.4.3 行为型模式 444 23.5 ...
2.1.4安装本书中的示例 2.1.5导航Java目录 2.2选择开发环境 2.3使用命令行工具 2.4使用集成开发环境 2.5使用文本编辑器编译并运行程序 2.6运行图形化应用程序 2.7建立并运行applet 第3章Java基本...
2.1.4安装本书中的示例 2.1.5导航Java目录 2.2选择开发环境 2.3使用命令行工具 2.4使用集成开发环境 2.5使用文本编辑器编译并运行程序 2.6运行图形化应用程序 2.7建立并运行applet 第3章Java基本...
2.1.4安装本书中的示例 2.1.5导航Java目录 2.2选择开发环境 2.3使用命令行工具 2.4使用集成开发环境 2.5使用文本编辑器编译并运行程序 2.6运行图形化应用程序 2.7建立并运行applet 第3章Java基本的程序...
2.1.4安装本书中的示例 2.1.5导航Java目录 2.2选择开发环境 2.3使用命令行工具 2.4使用集成开发环境 2.5使用文本编辑器编译并运行程序 2.6运行图形化应用程序 2.7建立并运行applet 第3章Java基本...
2.1.4安装本书中的示例 2.1.5导航Java目录 2.2选择开发环境 2.3使用命令行工具 2.4使用集成开发环境 2.5使用文本编辑器编译并运行程序 2.6运行图形化应用程序 2.7建立并运行applet 第3章Java基本...
2.1.4安装本书中的示例 2.1.5导航Java目录 2.2选择开发环境 2.3使用命令行工具 2.4使用集成开发环境 2.5使用文本编辑器编译并运行程序 2.6运行图形化应用程序 2.7建立并运行applet 第3章Java基本...
17.2.3 Callable与Future接口的具体使用 385 17.3 资源的封锁 386 17.3.1 Lock接口与ReentrantLock类简介 386 17.3.2 ReentrantLock锁的具体使用 387 17.3.3 ReadWriteLock接口与ReentrantReadWriteLock类...
接着,深入讲解了Java并发编程的核心API,如synchronized关键字、Lock接口、Condition接口、Semaphore等,帮助读者掌握Java并发编程的基本工具和方法。 除了基础知识和API的讲解,本书还重点介绍了Java并发编程的...
Clump + Zoot 示例应用程序 概括 该项目旨在展示和如何使开发人员能够创建超最小的微服务生态系统。 是一个路由和 API 规范框架,允许开发人员指定强类型微服务接口以在客户端和服务器之间共享,并隐藏 JSON 编组/...
学生提问:当我们使用编译C程序时,不仅需要指定存放目标文件的位置,也需要指定目标文件的文件名,这里使用javac编译Java程序时怎么不需要指定目标文件的文件名呢? 13 1.5.3 运行Java程序 14 1.5.4 根据...
11.2.1 ServerSocket与Socket示例: 开发一个Server-Client模型的程序 291 11.2.2 多点传送示例 293 11.2.3 打造你自己的QQ 295 11.3 小结 315 第12章 找个好管家——JMX 317 12.1 讲解 318 12.1.1 什么是 JMX...
2.1 程序输出,1print语句及“HellocWorld!” 2.2 程序输入和raw_input()内建函数 2.3 注释 2.4 操作符 2.5 变量和赋值 2.6 数字 2.7 字符串 2.8 列表和元组 2.9 字典...
Even if you never implement a system with Struts, you may get some ideas for your future servlets and JSP page implementation. Introduction Kids in grade school put ...