
Java多线程
iteye_5681
这个作者很懒,什么都没留下…
展开
-
三种非常见的功能性集合类和低效的linkedlist随机访问方法
这个周末看过奥运会的开幕式后就开始java2 核心技术 卷II:高级特性。因为最近做线程方面的开发,需要一些具有特殊特性的集合类,因此对上面那本书的内容做了一下整理,这些功能性集合类都是为了解决某一特点场景而提出的。1 weekhashmap 弱散列映射表映射表中存在除了该映射表本身已经不存在其他引用的键值对,我们无法移除该键值对。但是由于映射表还是存在引用,因此这个键值对会一直无法被垃圾回...2008-08-09 14:03:35 · 409 阅读 · 0 评论 -
线程,非堵塞队列和线程池相关小贴士
线程状态new新生,runnable可运行,blocked堵塞,dead死亡线程堵塞的原因和恢复方式:线程睡眠-睡眠结束,经过指定的毫秒数i/o堵塞-i/o操作完成,等待锁定-锁可用,等待的锁被其它线程释放或者等待超时等待-通知,等待某个触发条件,当另外一个线程发出信号量表明条件已经发生变化。则回唤醒该线程进入可运行状态,重新判断等待条件线程死亡的原因:1 run方法正常退出导致正...2008-08-09 21:34:29 · 119 阅读 · 0 评论 -
关于FastHashMap
今天看老大写的代码,发现在缓存对象的时候基本上都使用commons的FastHashMap.google一下发现HashMap vs FastHashMap的文章,感觉很奇怪. 下班后download下来FastHashMap的代码看了一下commons中FastHashMap类的doc写道:java.util.HashMap类的一种自定义实现,以应付多线程环境中大量只读方法而非改变...2008-08-11 22:41:25 · 1941 阅读 · 1 评论 -
提高并发程序的可伸缩性的7个技巧
并发程序的可伸缩性主要是在保证程序安全同步,操作准确的前提下,保障程序在大量线程并发的情况下访问共享同步资源的效率.锁住某个共享的资源以获得独占式的访问这种做法会形成可伸缩性瓶颈――它使其他线程不能访问那个资源,即使有空闲的处理器可以调用那些线程也无济于事。为了取得可伸缩性,我们必须消除或者减少对独占式资源锁的依赖。基于这种原理有如下几种解决方案,部分内容整理于ibm developerwork...2008-08-13 20:27:16 · 245 阅读 · 0 评论 -
应用分离锁的基于hash的map实现
阅读java并发编程实践第11章,11.4减少锁的竞争. ConcurrentHashMap的实现使用了一个包含16个对象锁的数组,每个锁都负责同步hash buckets数组中的 1/16的元素;buckets中的第n个元素由locks中第 n除以16 个锁来守护.假设hash算法的实现能够提供合理的扩展性,并且关键字能够以统一的方式访问,这会将对于锁的请求减少到原来的1/16...2008-10-30 20:24:56 · 94 阅读 · 0 评论 -
并发编程反模式
整理自java并发编程实践第12章 12.4测试方法补遗 不连贯的同步性:为了同步某个对象或者对象本身的某个域的访问,使用同步锁(内部锁或者显式锁,例如,对象本身的内部锁)来保护同步对象.但是如果访问该同步对象没有一贯性地通过同步锁获得访问,就意味着同步策略没有一贯地执行.通俗地讲就是在访问同步对象的时候,采用了双重标准,既有同步的操作也有非同步的操作,破坏了同步的连贯性和完整性. 直...2008-10-30 23:37:52 · 114 阅读 · 0 评论