Java并发包里的concurrentHashMap在什么情况下tryPresize方法里的sc会小于0?

在 Java 的 ConcurrentHashMap 类中,tryPresize 方法主要用于在预调整过程中判断是否需要调整 ConcurrentHashMap 的大小。

这个方法的参数 sc 是 ConcurrentHashMap 的 segment count(段数)。

在 tryPresize 方法中,while 循环的条件是 (sc > 1 && sc > ((sc >> 2) + 1))。这个条件的意思是,当 sc 大于 1 并且大于 (sc >> 2) + 1 时,循环继续。其中 >> 是逻辑右移操作,即将 sc 的二进制表示向右移动两位。

因此,tryPresize 方法只有在以下情况下才会执行 if (sc < 0) 的判断:



  • 璇诲彇澶ч噺鏁版嵁鏃舵暟鎹椂鍐呭瓨婧㈠嚭鎬庢牱鍒嗘壒璇诲彇璇ユ庝箞澶勭悊
    绛旓細杩欐槸榛樿寰楀埌鐨勯缂栬瘧,杩樺彲浠ラ氳繃璁剧疆: PreparedStatementstatement=connection.prepareStatement(sql,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY); 鏉ヨ缃父鏍囩殑鏂瑰紡,浠ヨ嚦浜庢父鏍囦笉鏄皢鏁版嵁鐩存帴cache鍒版湰鍦板唴瀛,鐒跺悗閫氳繃璁剧疆statement.setFetchSize(200);璁剧疆娓告爣姣忔閬嶅巻...
  • 鍗忓悓杩囨护java鐢ㄤ粈涔堝疄鐜
    绛旓細鏄殑,杩欎釜闂鎴戜滑鍊煎緱鍘绘濊冧笅,閫氳繃API鍙戠幇鍙互瀵筍QL杩涜涓浜涙搷浣,渚嬪,閫氳繃:PreparedStatementstatement=connection.prepareStatement(sql),杩欐槸榛樿寰楀埌鐨勯缂栬瘧,杩樺彲浠ラ氳繃璁剧疆:PreparedStatementstatement=connection.prepareStatement(sql,ResultSet.TYPE_FORWARD_ONLY,ResultSet.CONCUR_READ_ONLY);鏉ヨ缃父鏍囩殑鏂瑰紡,浠ヨ嚦浜庢父...
  • (楂樺垎)鎬ユ眰杩炴帴鏁版嵁搴撶殑JAVA瀛︾敓淇℃伅绠$悊绯荤粺婧愪唬鐮
    绛旓細• 缁撴灉闆嗙殑骞跺彂鎬у叡鏈変袱绉,CONCUR_READ_ONLY鐨勭粨鏋滈泦鏄彧璇昏屼笉鍙洿鏂扮殑;鑰孋ONCUR_UPDATABLE鐨勭粨鏋滈泦鍒欐槸鍙互閫氳繃update鏂规硶杩涜鏇存柊鐨勩 • ResultSet鎺ュ彛鎻愪緵浜嗕竴缁剈pdate鏂规硶,鐢ㄤ簬鏇存柊缁撴灉闆涓殑鏁版嵁銆傝繖浜涙柟娉曚笌PreparedStatement鎺ュ彛涓畾涔夌殑setter鏂规硶涓鏍,涔熸槸涓庣被鍨嬬浉瀵瑰簲鐨勩傛墍鏈夌殑update鏂规硶閮戒互update寮澶 銆
  • java鍩硅璇剧▼閮芥湁浠涔堝唴瀹
    绛旓細3銆Java web锛圝ava web鍩虹銆丣S銆丏OM鎿嶄綔銆丣SP/Servlet銆佺涓夋柟宸ュ叿鍖呫乀omcat...锛4銆佹鏋讹紙缃戠粶鍘熺悊銆丠TTP鍗忚銆丩inux鎿嶄綔绯荤粺銆佷簯鏈嶅姟鎼缓銆丼SM妗嗘灦搴旂敤銆丱racle搴旂敤銆丼pring JPA銆丠ibernate...锛5銆侀珮鍙敤銆侀珮骞跺彂銆侀珮鎵╁睍锛圫pringBoot銆佺紦瀛樸佸垎甯冨紡銆佹彃浠躲佸叏鏂囩储寮曘佹湇鍔′腑闂翠欢銆佹秷鎭腑闂翠欢銆佷簯鏈嶅姟...
  • java鍩硅閮借浠涔堜笢瑗
    绛旓細绗竴闃舵锛Java鍩虹鐭ヨ瘑锛歞os鍛戒护锛岄厤缃JAVA寮鍙戠幆澧冿紝鍩虹鐨勭紪绋嬭娉曠瓑 绗簩闃舵锛欽avaweb锛歐eb鍓嶇寮鍙戝熀纭鍜屾鏋躲丼ervlet鍜孞SP鍦╓eb鍚庣鐨勫簲鐢ㄣ乄eb鍚庣寮鍙戠浉鍏充笓棰樸丮VC鍜屽垎灞傛灦鏋勪互鍙婇」鐩紑鍙戞祦绋嬪強CASE宸ュ叿鐨勪娇鐢ㄨ繕鏈夊紑鍙戠殑鏍稿績妗嗘灦绛 绗笁闃舵锛氭鏋舵暣鍚堝紑鍙戯紙SSH/SSS锛夈丷ESTful鏋舵瀯鍜岀Щ鍔ㄧ鎺ュ彛璁捐...
  • 绠绛旈 java鐢ㄤ粈涔坅pi瀹炵幇澶ч噺鏁版嵁璇诲彇鍐呭瓨,楗间繚璇佹暟鎹鐞嗘ц兘_鐧惧害...
    绛旓細鏉ヨ缃父鏍囩殑鏂瑰紡,浠ヨ嚦浜庢父鏍囦笉鏄皢鏁版嵁鐩存帴cache鍒版湰鍦板唴瀛,鐒跺悗閫氳繃璁剧疆statement.setFetchSize(200);璁剧疆娓告爣姣忔閬嶅巻鐨勫ぇ灏;OK,杩欎釜鍏跺疄鎴戠敤杩,oracle鐢ㄤ簡鍜屾病鐢ㄦ病鍖哄埆,鍥犱负oracle鐨刯dbc API榛樿灏辨槸涓嶄細灏嗘暟鎹甤ache鍒java鐨鍐呭瓨涓殑,鑰宮ysql閲屽ご璁剧疆鏍规湰鏃犳晥,鎴戜笂闈㈣浜嗕竴鍫嗗簾璇,鍛靛懙,鎴戝彧鏄兂璇,java鎻愪緵鐨勬爣鍑...
  • 扩展阅读:java入门网站 ... 为什么都不建议java转测试 ... java c++ ... 先学c再学java ... javascript ... 学java ... java自学要学多久 ... java实战项目大全 ... python基础代码大全 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网