alex_lo

导航

2013年3月14日 #

JAVA 基础之 多线程

摘要: 关键:多线程同步,有两种角度。1.从JVM的角度来看,instance = new instance () 不是一个原子操作,在jvm被分成三步,分配内存,设置intance引用指向实例,初始化,JVM乱序执行。需要考虑线陈并发处理问题。可以通过volatile控制语句的原子性。2.从多条语句之间的角度来看: if(instance =null) {instance = new instance ()} 这样两句话,如何保证同步。使用sychornized 关键字。通过锁,保证同步代码块 。1. 主线程Static Thread currentThread(); //currentThrea. 阅读全文

posted @ 2013-03-14 15:59 alex_lo 阅读(660) 评论(0) 推荐(0) 编辑

HashMap 多线程处理之 Fail-Fast机制:

摘要: Fail-Fast机制:我们知道java.util.HashMap不是线程安全的,因此如果在使用迭代器的过程中有其他线程修改了map,那么将抛出ConcurrentModificationException,这就是所谓fail-fast策略。这一策略在源码中的实现是通过modCount域,modCount顾名思义就是修改次数,对HashMap内容的修改都将增加这个值,那么在迭代器初始化过程中会将这个值赋给迭代器的expectedModCount。Java代码HashIterator(){expectedModCount=modCount;if(size>0){//advancetofir 阅读全文

posted @ 2013-03-14 13:58 alex_lo 阅读(5854) 评论(0) 推荐(2) 编辑