6. 下面哪个方法可以在任何时候被任何线程调用?
A、 notify()
B、 wait()
C、 notifyAll()
D、 sleep()
E、 yield()
F、 synchronized(this)
多项选择题,先说答案在详细解释,拜托啦,谢谢。
æsynchronizedçå°æ¹ä¸ä¸å®æwait,notify,notifyAll,
æwait,notifyçå°æ¹å¿
æsynchronized.è¿æ¯å 为waitånotifyä¸æ¯å±äºçº¿ç¨ç±»ï¼èæ¯æ¯ä¸ä¸ªå¯¹è±¡é½å
·æçæ¹æ³ï¼èä¸ï¼è¿ä¸¤ä¸ªæ¹æ³é½å对象éæå
³ï¼æéçå°æ¹ï¼å¿
æsynchronized.
wait(),notifyAll()æ¯Objectç±»çæ¹æ³ææçç±»é½ç»§æ¿çæï¼æ以å¯ä»¥å¨ä»»ä½æ¶å被任任ä½çº¿ç¨è°ç¨ï¼
å¦æè¦ænotifyåwaitæ¹æ³æ¾å¨ä¸èµ·ç¨çè¯ï¼å¿
é¡»å
è°ç¨notifyåè°ç¨waitï¼å 为å¦æè°ç¨å®waitï¼è¯¥çº¿ç¨å°±å·²ç»ä¸æ¯current threadäº.
æ¨è使ç¨notifyAll.
sleepæ¹æ³ä¸æ¨è使ç¨ï¼å¯ç¨waitã
线ç¨éåºæ好èªå·±å®ç°ï¼å¨è¿è¡ç¶æä¸ä¸ç´æ£éªä¸ä¸ªç¶æï¼å¦æè¿ä¸ªç¶æ为çï¼å°±ä¸ç´è¿è¡ï¼å¦æå¤çæ´æ¹äºè¿ä¸ªç¶æåéï¼é£ä¹çº¿ç¨å°±åæ¢è¿è¡ã
sleep()使å½å线ç¨è¿å
¥åæ»ç¶æï¼æ以æ§è¡sleep()ç线ç¨å¨æå®çæ¶é´å
è¯å®ä¸ä¼æ§è¡ï¼yield()åªæ¯ä½¿å½å线ç¨éæ°åå°å¯æ§è¡ç¶æï¼æ以æ§è¡yield()ç线ç¨æå¯è½å¨è¿å
¥å°å¯æ§è¡ç¶æå马ä¸å被æ§è¡ã
sleep()å¯ä½¿ä¼å
级ä½ç线ç¨å¾å°æ§è¡çæºä¼ï¼å½ç¶ä¹å¯ä»¥è®©åä¼å
级åé«ä¼å
级ç线ç¨ææ§è¡çæºä¼ï¼yield()åªè½ä½¿åä¼å
级ç线ç¨ææ§è¡çæºä¼ã
å½è°ç¨wait()åï¼çº¿ç¨ä¼éæ¾æå®æå æçâéæ å¿âï¼ä»è使线ç¨æå¨å¯¹è±¡ä¸çå
¶å®synchronizedæ°æ®å¯è¢«å«ç线ç¨ä½¿ç¨ã
waite()
ånotify()å 为ä¼å¯¹å¯¹è±¡çâéæ å¿âè¿è¡æä½ï¼æ以å®ä»¬å¿
é¡»å¨
synchronizedå½æ°æsynchronizedãblockä¸è¿è¡è°ç¨ãå¦æå¨non-synchronizedå½æ°ænon-
synchronizedãblockä¸è¿è¡è°ç¨ï¼è½ç¶è½ç¼è¯éè¿ï¼ä½å¨è¿è¡æ¶ä¼åçIllegalMonitorStateExceptionçå¼
常ã