Callable和Future
来源:互联网 发布:华为云计算部门北京 编辑:程序博客网 时间:2024/05/01 20:34
多线程开发, 之前用Thread, Runnable.存在的问题是:
1.Thread类和Runnable接口都不允许声明检查型异常
2.也不能定义返回值
public void run()方法契约意味着你必须捕获并处理检查型异常
Callable
public T call() throws Exception
可抛出检查型异常和定义强类型的返回值.
Future
Future是Java 1.5中引入的接口
提交一个Callable对象给线程池时,将得到一个Future对象
public class ServerAcceptingRequestsVerifier implements Callable { /** * @return Boolean.TRUE is server is accepting requests * Boolean.FALSE otherwise */ public Boolean call() throws Exception { Boolean isAcceptingRequests = null; ... ask server about taking requests here return isAcceptingRequests; }}public Boolean isServerTakingRequests(String server) throws UnresponsiveException, InterruptedException { ServerAcceptingRequestsVerifier acceptingRequestsVerifier = new ServerAcceptingRequestsVerifier(); Future future = THREAD_POOL.submit(acceptingRequestsVerifier); try { Boolean isAcceptingRequests = future.get(5, TimeUnit.SECONDS); //waits for the thread to complete, even if it hasn't started return isAcceptingRequests; } catch (TimeoutException e) { LOGGER.warn("Timed out waiting for server check thread." + "We'll try to interrupt it."); future.cancel(true); return Boolean.FALSE; } catch (ExecutionException e) { throw new UnresponsiveException(e.getCause()); }}
0 0
- java callable和Future
- 多线程Callable和Future
- 线程--Callable和Future
- Callable和Future
- Callable和Future
- Callable、Future和CompletionService
- Callable和Future
- Callable和Future
- Callable和Future简介
- Callable和Future浅析
- Callable和Future
- Future和Callable
- Future和Callable
- Callable和Future
- Callable、Future和FutureTask
- Callable、Future和CompletionService
- Callable和Future
- Callable和Future
- Linux快捷键抬遗
- java并发编程---synchronized关键字
- 关于web开发中的规范流程
- 从UDP的”连接性”说起–告知你不为人知的UDP
- golang字符串首字母转化为大写
- Callable和Future
- POJ 2155 树状数组
- OKHttp HTTPS 请求证书验证 PEM证书
- SpannableStringBuilder实现图文混排
- Android中的DrawRect()参数解析
- 16进制、10进制、字符串、中文、byte[]相互转换--->java版
- Sublime text3 搭建python环境进行数据处理
- 查看手机是否安装微信客户端
- ACM篇:Codeforces 460 B -- Little Dima and Equation