线ç¨åæ¥çæ¹å¼å
æ¬ï¼äºæ¥éã读åéãæ¡ä»¶åéãä¿¡å·éå令çã
以Javaè¯è¨ä¸ºä¾ï¼
ç¨synchronizedå
³é®å修饰åæ¥æ¹æ³ã
åæ¥æå ç§å®ç°æ¹æ³åå«æ¯synchronized,waitä¸notify
wait():使ä¸ä¸ªçº¿ç¨å¤äºçå¾
ç¶æï¼å¹¶ä¸éæ¾æææç对象çlockã
sleep():使ä¸ä¸ªæ£å¨è¿è¡ç线ç¨å¤äºç¡ç ç¶æï¼æ¯ä¸ä¸ªéææ¹æ³ï¼è°ç¨æ¤æ¹æ³è¦ææInterruptedExceptionå¼å¸¸ã
notify():å¤éä¸ä¸ªå¤äºçå¾
ç¶æç线ç¨ï¼æ³¨æçæ¯å¨è°ç¨æ¤æ¹æ³çæ¶åï¼å¹¶ä¸è½ç¡®åçå¤éæä¸ä¸ªçå¾
ç¶æç线ç¨ï¼èæ¯ç±JVMç¡®å®å¤éåªä¸ªçº¿ç¨ï¼èä¸ä¸æ¯æä¼å
级ã
Allnotity():å¤éææå¤å
¥çå¾
ç¶æç线ç¨ï¼æ³¨æ并ä¸æ¯ç»ææå¤é线ç¨ä¸ä¸ªå¯¹è±¡çéï¼èæ¯è®©å®ä»¬ç«äºã
åæ¥æ¯å¤çº¿ç¨ä¸çéè¦æ¦å¿µãåæ¥ç使ç¨å¯ä»¥ä¿è¯å¨å¤çº¿ç¨è¿è¡çç¯å¢ä¸ï¼ç¨åºä¸ä¼äº§ç设计ä¹å¤çé误ç»æãåæ¥çå®ç°æ¹å¼æ两ç§ï¼åæ¥æ¹æ³ååæ¥åï¼è¿ä¸¤ç§æ¹å¼é½è¦ç¨å°synchronizedå
³é®åã
ç»ä¸ä¸ªæ¹æ³å¢å synchronized修饰符ä¹åå°±å¯ä»¥ä½¿å®æ为åæ¥æ¹æ³ï¼è¿ä¸ªæ¹æ³å¯ä»¥æ¯éææ¹æ³åééææ¹æ³ï¼ä½æ¯ä¸è½æ¯æ½è±¡ç±»çæ½è±¡æ¹æ³ï¼ä¹ä¸è½æ¯æ¥å£ä¸çæ¥å£æ¹æ³ãä¸é¢ä»£ç æ¯ä¸ä¸ªåæ¥æ¹æ³ç示ä¾ï¼
public synchronized void aMethod() {
// do something
}
public static synchronized void anotherMethod() {
// do something
}
线ç¨å¨æ§è¡åæ¥æ¹æ³æ¶æ¯å
·ææå®æ§çãå½ä»»æä¸ä¸ªçº¿ç¨è¿å
¥å°ä¸ä¸ªå¯¹è±¡çä»»æä¸ä¸ªåæ¥æ¹æ³æ¶ï¼è¿ä¸ªå¯¹è±¡çææåæ¥æ¹æ³é½è¢«éå®äºï¼å¨æ¤æé´ï¼å
¶ä»ä»»ä½çº¿ç¨é½ä¸è½è®¿é®è¿ä¸ªå¯¹è±¡çä»»æä¸ä¸ªåæ¥æ¹æ³ï¼ç´å°è¿ä¸ªçº¿ç¨æ§è¡å®å®æè°ç¨çåæ¥æ¹æ³å¹¶ä»ä¸éåºï¼ä»è导è´å®éæ¾äºè¯¥å¯¹è±¡çåæ¥éä¹åãå¨ä¸ä¸ªå¯¹è±¡è¢«æ个线ç¨éå®ä¹åï¼å
¶ä»çº¿ç¨æ¯å¯ä»¥è®¿é®è¿ä¸ªå¯¹è±¡çææéåæ¥æ¹æ³çã
åæ¥åæ¯éè¿éå®ä¸ä¸ªæå®ç对象ï¼æ¥å¯¹åæ¥åä¸å
å«ç代ç è¿è¡åæ¥ï¼èåæ¥æ¹æ³æ¯å¯¹è¿ä¸ªæ¹æ³åéç代ç è¿è¡åæ¥ï¼èè¿ç§æ
åµä¸éå®ç对象就æ¯åæ¥æ¹æ³æå±ç主ä½å¯¹è±¡èªèº«ãå¦æè¿ä¸ªæ¹æ³æ¯éæåæ¥æ¹æ³å¢ï¼é£ä¹çº¿ç¨éå®çå°±ä¸æ¯è¿ä¸ªç±»ç对象äºï¼ä¹ä¸æ¯è¿ä¸ªç±»èªèº«ï¼èæ¯è¿ä¸ªç±»å¯¹åºçjava.lang.Classç±»åç对象ãåæ¥æ¹æ³ååæ¥åä¹é´çç¸äºå¶çº¦åªéäºåä¸ä¸ªå¯¹è±¡ä¹é´ï¼æ以éæåæ¥æ¹æ³åªåå®æå±ç±»çå
¶å®éæåæ¥æ¹æ³çå¶çº¦ï¼èè·è¿ä¸ªç±»çå®ä¾ï¼å¯¹è±¡ï¼æ²¡æå
³ç³»ã
温馨提示:答案为网友推荐,仅供参考