
Java源码解析
张燕茹
宁静以致远
展开
-
FutureTask 源码解析
站在使用者的角度,future是一个经常在多线程环境下使用的Runnable,使用它的好处有两个:1. 线程执行结果带有返回值2. 提供了一个线程超时的功能,超过超时时间抛出异常后返回。那,怎么实现future这种超时控制呢?来看看代码:FutureTask的实现只是依赖了一个内部类Sync实现的,Sync是AQS (AbstractQueuedSynchroniz转载 2016-07-30 12:03:20 · 1104 阅读 · 0 评论 -
FutureTask 深度解析
转自:http://blog.youkuaiyun.com/liulipuo/article/details/39029643先看下FutureTask的注释吧FutureTask一个可取消的异步计算,FutureTask 实现了Future的基本方法,提空 start cancel 操作,可以查询计算是否已经完成,并且可以获取计算的结果。结果只可以在计算完成之后获取,get方法会阻塞转载 2016-07-30 12:04:11 · 1316 阅读 · 0 评论 -
Future类源码解析翻译
/** * A Future represents the result of an asynchronous * computation. Methods are provided to check if the computation is * complete, to wait for its completion, and to retrieve the result o翻译 2016-08-03 17:32:29 · 1073 阅读 · 0 评论 -
HashMap实现原理分析
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难转载 2016-09-13 13:39:00 · 422 阅读 · 0 评论