博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[JAVA学习笔记-97]ActiveObject模式的Scheduler的关键实现
阅读量:4098 次
发布时间:2019-05-25

本文共 865 字,大约阅读时间需要 2 分钟。

public class CustomScheduler implements Runnable {			private LinkedBlockingQueue activationQueue = new LinkedBlockingQueue();			@Override			public void run() {				dispatch();		}			public Future enqueue(Callable methodRequest) {			final FutureTask task = new FutureTask(methodRequest) {			public void run() {				try {					super.run(); 【调用FutureTask的run,实际调用的是callable的run】					// 捕获所有可能抛出的对象,避免该任务运行失败而导致其所在的线程终止				} catch (Throwable t) {					this.setException(t);				}			}		};			try {			activationQueue.put(task);		} catch (InterruptedException e) {			Thread.currentThread().interrupt();		}		return task;	}	public void dispatch() {		while (true) {			Runnable methodRequest;			try {				methodRequest = activationQueue.take();				// 防止个别任务执行失败导致线程终止的代码在run方法中				methodRequest.run();			} catch (InterruptedException e) {				// 处理该异常				e.printStackTrace();			}		}	}}

转载地址:http://svhii.baihongyu.com/

你可能感兴趣的文章
【工具】FTP软件FileZilla下载和连接服务器
查看>>
【Python】random模块生成多种类型随机数
查看>>
【债券】可转换债券基本概念
查看>>
【股票】融资融券基本概念
查看>>
【性能测试】性能测试的基础理论
查看>>
【性能测试】性能测试的基本流程
查看>>
【性能测试】性能测试工具选择
查看>>
【性能测试】Linux系统监控-Top命令
查看>>
【测试工具】禅道项目管理工具设置触发邮箱
查看>>
【性能测试】Linux系统监控-CPU信息
查看>>
【Linux】Linux简介以及 与UNIX区别
查看>>
【视频】视频文件格式和视频编码
查看>>
【工具】Notepad++的一些常用配置
查看>>
【文字识别】Python3使用百度AI进行文字识别
查看>>
【图片】图像基本知识以及三原色原理 (rgb)
查看>>
【图片】Python对RGB颜色与16进制颜色进行互转
查看>>
【Python】pyinstaller模块将py文件打包为windows可执行文件exe
查看>>
【自动化】Python3+Selenium3自动化测试-准备工作
查看>>
【Python】pip模块管理Python包的常用方法
查看>>
【数据库】mysql常用的数据类型
查看>>