ConcurrentHashMap(jdk1.7)put操作確定segment后,加鎖失敗時(shí),自旋外還在遍歷鏈表,什么目的,感覺(jué)毫無(wú)意義啊privateHashEntryscanAndLockForPut(Kkey,inthash,Vvalue){HashEntryfirst=entryForHash(this,hash);HashEntrye=first;HashEntrynode=null;intretries=-1;//negativewhilelocatingnodewhile(!tryLock()){HashEntryf;//torecheckfirstbelowif(retriesMAX_SCAN_RETRIES){lock();break;}elseif((retries&1)==0&&(f=entryForHash(this,hash))!=first){e=first=f;//re-traverseifentrychangedretries=-1;}}returnnode;}改成這樣有啥問(wèn)題呢:privateHashEntryscanAndLockForPut(Kkey,inthash,Vvalue){HashEntrynode=newHashEntry(hash,key,value,null);intretries=-1;//negativewhilelocatingnodewhile(!tryLock()){if(++retries>MAX_SCAN_RETRIES){lock();break;}}returnnode;}
oncurrentHashMap(jdk1.7)put操作確定segment后,加鎖失敗時(shí),遍歷鏈表的目的求指導(dǎo)!
冉冉說(shuō)
2019-10-16 17:08:43