ä¸ãjavaå
许å¤çº¿ç¨å¹¶åæ§å¶ï¼å½å¤ä¸ªçº¿ç¨åæ¶æä½ä¸ä¸ªå¯å
±äº«çèµæºåéæ¶(å¦æ°æ®çå¢å æ¹æ¥)ï¼
å°ä¼å¯¼è´æ°æ®ä¸åç¡®ï¼ç¸äºä¹é´äº§çå²çªï¼å æ¤å å
¥åæ¥é以é¿å
å¨è¯¥çº¿ç¨æ²¡æå®ææä½ä¹åï¼è¢«å
¶ä»çº¿ç¨çè°ç¨ï¼ ä»èä¿è¯äºè¯¥åéçå¯ä¸æ§ååç¡®æ§ã
äºãå®ç°æ¹æ³ï¼
1ãåæ¥æ¹æ³
å³æsynchronizedå
³é®å修饰çæ¹æ³ã
ç±äºjavaçæ¯ä¸ªå¯¹è±¡é½æä¸ä¸ªå
ç½®éï¼å½ç¨æ¤å
³é®å修饰æ¹æ³æ¶ï¼å
ç½®éä¼ä¿æ¤æ´ä¸ªæ¹æ³ãå¨è°ç¨è¯¥æ¹æ³åï¼éè¦è·å¾å
ç½®éï¼å¦åå°±å¤äºé»å¡ç¶æã
代ç å¦ï¼ public synchronized void save(){}123
æ³¨ï¼ synchronizedå
³é®åä¹å¯ä»¥ä¿®é¥°éææ¹æ³ï¼æ¤æ¶å¦æè°ç¨è¯¥éææ¹æ³ï¼å°ä¼éä½æ´ä¸ªç±»
2ãåæ¥ä»£ç å
å³æsynchronizedå
³é®å修饰çè¯å¥åã被该å
³é®å修饰çè¯å¥åä¼èªå¨è¢«å ä¸å
ç½®éï¼ä»èå®ç°åæ¥ã
3ã使ç¨ç¹æ®ååé(volatile)å®ç°çº¿ç¨åæ¥
1)volatileå
³é®å为ååéç访é®æä¾äºä¸ç§å
éæºå¶;
2)使ç¨volatile修饰åç¸å½äºåè¯èææºè¯¥åå¯è½ä¼è¢«å
¶ä»çº¿ç¨æ´æ°ï¼
3)å æ¤æ¯æ¬¡ä½¿ç¨è¯¥åå°±è¦éæ°è®¡ç®ï¼èä¸æ¯ä½¿ç¨å¯åå¨ä¸çå¼
4)volatileä¸ä¼æä¾ä»»ä½ååæä½ï¼å®ä¹ä¸è½ç¨æ¥ä¿®é¥°finalç±»åçåé
4ã使ç¨éå
¥éå®ç°çº¿ç¨åæ¥
å¨JavaSE5.0ä¸æ°å¢äºä¸ä¸ªjava.util.concurrentå
æ¥æ¯æåæ¥ã
ReentrantLockç±»æ¯å¯éå
¥ãäºæ¥ãå®ç°äºLockæ¥å£çéï¼å®ä¸ä½¿ç¨synchronizedæ¹æ³åå¿«å
·æç¸åçåºæ¬è¡ä¸ºåè¯ä¹ï¼å¹¶ä¸æ©å±äºå
¶è½å
5ã使ç¨å±é¨åéå®ç°çº¿ç¨åæ¥
å¦æ使ç¨ThreadLocal管çåéï¼åæ¯ä¸ä¸ªä½¿ç¨è¯¥åéç线ç¨é½è·å¾è¯¥åéçå¯æ¬ï¼å¯æ¬ä¹é´ç¸äºç¬ç«ï¼è¿æ ·æ¯ä¸ä¸ªçº¿ç¨é½å¯ä»¥éæä¿®æ¹èªå·±çåéå¯æ¬ï¼èä¸ä¼å¯¹å
¶ä»çº¿ç¨äº§çå½±åã
温馨提示:答案为网友推荐,仅供参考