2017年11月20日
摘要: 总线锁:就是使用处理器提供的一个LOCK#信号,当一个处理器在总线上输此信号时,其他处理器的请求将被阻塞住,那么该处理器可以独占共享内存。 缓存锁:所谓“缓存锁定”是指内存区域如果被缓存在处理器的缓存行中,并且在Lock操作期间被锁定,那么当它执行锁操作回写到内存时,处理器不在总线上声言LOCK#信 阅读全文
posted @ 2017-11-20 22:52 飞奔的菜鸟 阅读(4779) 评论(0) 推荐(0)
摘要: 大多数情况下,锁不仅不存在多线程竞争,而且总是由同一线程多次获得,为了让线程获得锁的代价更低而引入偏向锁。 当一个线程访问同步代码块并获取锁时,会在对象头和栈帧中的锁记录里存储锁偏向的线程ID,以后该线程再进入和退出同步块时不需要进行CAS操作来加锁和解锁,只需要简单地测试一下对象头的Mark Wo 阅读全文
posted @ 2017-11-20 22:31 飞奔的菜鸟 阅读(2463) 评论(0) 推荐(0)
摘要: Java中的每一个对象都可以作为锁,具体表现为一下三种形式: 1:对于普通同步方法,锁是当前实例对象。 2:对于静态同步方法,锁是当前类的Class对象。 3:对于同步方法块,锁是Synchronized括号里配置的对象。 阅读全文
posted @ 2017-11-20 22:11 飞奔的菜鸟 阅读(180) 评论(0) 推荐(0)
摘要: 一个对象只要实现了Serilizable接口,这个对象就可以被序列化,java的这种序列化模式为开发者提供了很多便利,我们可以不必关系具体序列化的过程,只要这个类实现了Serilizable接口,这个类的所有属性和方法都会自动序列化。 然而在实际开发过程中,我们常常会遇到这样的问题,这个类的有些属性 阅读全文
posted @ 2017-11-20 21:44 飞奔的菜鸟 阅读(156) 评论(0) 推荐(0)