02 2019 档案

摘要:题外话:为什么要hashcode进行spread? 充分使用key.hashCode()的高16位信息,保证hash分布更分散, 扩容操作是新建2倍于原表大小的新表,并将原表结点拷贝一份放在新表中,对原表无修改或修改很小。当原表所有结点都已被拷贝到新表中后,原表会被垃圾回收。 在jdk7中的Hash 阅读全文
posted @ 2019-02-24 17:23 cnblogs_z_s 阅读(1742) 评论(0) 推荐(0) 编辑
摘要:jdk7_ConcurrentHashMap初始化图示 jdk7_ConcurrentHashMap_put和get操作_扩容_线程安全的分析 阅读全文
posted @ 2019-02-17 21:48 cnblogs_z_s 阅读(215) 评论(0) 推荐(0) 编辑
摘要:1 package proxy.dynamicproxy; 2 3 import java.lang.reflect.InvocationHandler; 4 import java.lang.reflect.Method; 5 import java.lang.reflect.Proxy; 6 7 8 /** 9 * 需要实现InvocationHandler接口,内... 阅读全文
posted @ 2019-02-12 18:44 cnblogs_z_s 阅读(482) 评论(0) 推荐(0) 编辑
摘要:1 package proxy.staticproxy; 2 3 public interface IStar { 4 5 public void sing(); 6 } 1 package proxy.staticproxy; 2 3 public class RealStar implements IStar{ 4 @Override 5 public vo... 阅读全文
posted @ 2019-02-12 18:41 cnblogs_z_s 阅读(183) 评论(0) 推荐(0) 编辑
摘要:1 package reentrantlock; 2 3 import java.util.ArrayList; 4 import java.util.concurrent.locks.ReentrantLock; 5 6 public class TestFairSyn { 7 8 public static void main(String[] args) { ... 阅读全文
posted @ 2019-02-11 11:55 cnblogs_z_s 阅读(400) 评论(0) 推荐(0) 编辑
摘要:跑通上面的例子可以得到一些总结: 1、在生产者-消费者模式下,消费者线程和生产者线程都在抢占cpu,谁抢到cpu谁就得到执行。抢不到的会进入AQS队列。 此时如果有多个线程在抢占不到cpu进入AQS队列时,进入AQS队列的顺序是不可预知的(比如恰好经历线程切换), 但可以保证的是: 一旦在AQS队列 阅读全文
posted @ 2019-02-11 11:54 cnblogs_z_s 阅读(614) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示