ÓÑÇéÌáʾ£ºÈç¹û±¾ÍøÒ³´ò¿ªÌ«Âý»òÏÔʾ²»ÍêÕû£¬Çë³¢ÊÔÊó±êÓÒ¼ü¡°Ë¢Ð¡±±¾ÍøÒ³£¡ÔĶÁ¹ý³Ì·¢ÏÖÈκδíÎóÇë¸æËßÎÒÃÇ£¬Ð»Ð»£¡£¡ ±¨¸æ´íÎó
¹·¹·Êé¼® ·µ»Ø±¾ÊéĿ¼ ÎÒµÄÊé¼Ü ÎÒµÄÊéÇ© TXTÈ«±¾ÏÂÔØ ½øÈëÊé°É ¼ÓÈëÊéÇ©

Java±à³Ì˼ÏëµÚ4°æ[ÖÐÎİæ](PDF¸ñʽ)-µÚ220ÕÂ

°´¼üÅÌÉÏ·½Ïò¼ü ¡û »ò ¡ú ¿É¿ìËÙÉÏÏ·­Ò³£¬°´¼üÅÌÉ쵀 Enter ¼ü¿É»Øµ½±¾ÊéĿ¼ҳ£¬°´¼üÅÌÉÏ·½Ïò¼ü ¡ü ¿É»Øµ½±¾Ò³¶¥²¿£¡
¡ª¡ª¡ª¡ªÎ´ÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡





¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡513¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

ÔÚBlockable¡¡ÖУ¬±ä¶¯Ö¸Ê¾·ûÊÇÒ»¸ö¡¡int¡¡i£»ÑÜÉúÀàµÄ¡¡run£¨£©·½·¨»áΪÆäÔöÖµ¡£¡¡¡¡

Õë¶Ôÿ¸öBloackable¡¡¶ÔÏ󣬶¼»áÆô¶¯Peeker¡¡ÀàµÄÒ»¸öÏ̡߳£Peeker¡¡µÄÈÎÎñÊǵ÷ÓÃread£¨£©·½·¨£¬¼ì²éÓë×Ô¼º¡¡

¹ØÁªµÄBlockable¡¡¶ÔÏ󣬿´¿´¡¡i¡¡ÊÇ·ñ·¢ÉúÁ˱仯£¬×îºóÓÃËüµÄ¡¡statusÎı¾×ֶα¨¸æ¼ì²é½á¹û¡£×¢Òâ¡¡read£¨£©¡¡

ºÍupdate£¨£©¡¡¶¼ÊÇͬ²½µÄ£¬ÒªÇó¶ÔÏóµÄËø¶¨ÄÜ×ÔÓɽâ³ý£¬ÕâÒ»µã·Ç³£ÖØÒª¡£¡¡¡¡

¡¡¡¡

1¡£¡¡Ë¯Ãß¡¡¡¡

Õâ¸ö³ÌÐòµÄµÚÒ»Ïî²âÊÔÊÇÓá¡sleep£¨£©×÷³öµÄ£º¡¡¡¡

¡¡¡¡

///£ºContinuing¡¡¡¡

/////////////¡¡Blocking¡¡via¡¡sleep£¨£©¡¡///////////¡¡¡¡

class¡¡Sleeper1¡¡extends¡¡Blockable¡¡£û¡¡¡¡

¡¡¡¡public¡¡Sleeper1£¨Container¡¡c£©¡¡£û¡¡super£¨c£©£»¡¡£ý¡¡¡¡

¡¡¡¡public¡¡synchronized¡¡void¡¡run£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡while£¨true£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡i£«£«£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡update£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sleep£¨1000£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡catch¡¡£¨InterruptedException¡¡e£©£û£ý¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡¡¡¡¡

class¡¡Sleeper2¡¡extends¡¡Blockable¡¡£û¡¡¡¡

¡¡¡¡public¡¡Sleeper2£¨Container¡¡c£©¡¡£û¡¡super£¨c£©£»¡¡£ý¡¡¡¡

¡¡¡¡public¡¡void¡¡run£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡while£¨true£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡change£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sleep£¨1000£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡catch¡¡£¨InterruptedException¡¡e£©£û£ý¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡synchronized¡¡void¡¡change£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡i£«£«£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡update£¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡///£ºContinued¡¡¡¡

¡¡¡¡

ÔÚSleeper1¡¡ÖУ¬Õû¸örun£¨£©·½·¨¶¼ÊÇͬ²½µÄ¡£ÎÒÃǿɿ´µ½ÓëÕâ¸ö¶ÔÏó¹ØÁªÔÚÒ»ÆðµÄPeeker¡¡¿ÉÒÔÕý³£ÔËÐУ¬¡¡

Ö±µ½ÎÒÃÇÆô¶¯Ïß³ÌΪֹ£¬Ëæºó¡¡Peeker¡¡±ã»áÍêȫֹͣ¡£ÕâÕýÊÇ¡°¶ÂÈû¡±µÄÒ»ÖÖÐÎʽ£ºÒòΪ¡¡Sleeper1¡£run£¨£©ÊÇ¡¡

ͬ²½µÄ£¬¶øÇÒÒ»µ©Ïß³ÌÆô¶¯£¬Ëü¾Í¿Ï¶¨ÔÚrun£¨£©ÄÚ²¿£¬·½·¨ÓÀÔ¶²»»á·ÅÆú¶ÔÏóËø¶¨£¬Ôì³ÉPeeker¡¡Ï̵߳Ķ¡¡

Èû¡£¡¡¡¡

Sleeper2¡¡Í¨¹ýÉèÖò»Í¬²½µÄÔËÐУ¬ÌṩÁËÒ»ÖÖ½â¾ö·½°¸¡£Ö»ÓÐchange£¨£©·½·¨²ÅÊÇͬ²½µÄ£¬ËùÒÔ¾¡¹Ürun£¨£©Î»¡¡

ÓÚ¡¡sleep£¨£©ÄÚ²¿£¬Peeker¡¡ÈÔÈ»ÄÜ·ÃÎÊ×Ô¼ºÐèÒªµÄͬ²½·½·¨¡ª¡ªread£¨£©¡£ÔÚÕâÀÎÒÃǿɿ´µ½ÔÚÆô¶¯ÁË¡¡

Sleeper2¡¡Ïß³ÌÒÔºó£¬Peeker¡¡»á³ÖÐøÔËÐÐÏÂÈ¥¡£¡¡¡¡

¡¡¡¡

2¡£¡¡ÔÝÍ£ºÍ»Ö¸´¡¡¡¡

Õâ¸öÀý×Ó½ÓÏÂÀ´µÄÒ»²¿·ÖÒýÈëÁË¡°¹ÒÆð¡±»òÕß¡°ÔÝÍ£¡±£¨Suspend£©µÄ¸ÅÊö¡£Thread¡¡ÀàÌṩÁËÒ»¸öÃûΪ¡¡

suspend£¨£©µÄ·½·¨£¬¿ÉÁÙʱÖÐÖ¹Ị̈߳»ÒÔ¼°Ò»¸öÃûΪresume£¨£©¡¡µÄ·½·¨£¬ÓÃÓÚ´ÓÔÝÍ£´¦¿ªÊ¼»Ö¸´Ï̵߳ÄÖ´ÐС£¡¡

ÏÔÈ»£¬ÎÒÃÇ¿ÉÒÔÍÆ¶Ï³ö¡¡resume£¨£©ÊÇÓÉÔÝÍ£Ïß³ÌÍⲿµÄij¸öÏ̵߳÷Óõġ£ÔÚÕâÖÖÇé¿öÏ£¬ÐèÒªÓõ½Ò»¸öÃûΪ¡¡

Resumer¡¡£¨»Ö¸´Æ÷£©µÄ¶ÀÁ¢Àà¡£ÑÝʾÔÝÍ££¯»Ö¸´¹ý³ÌµÄÿ¸öÀà¶¼ÓÐÒ»¸öÏà¹ØµÄ»Ö¸´Æ÷¡£ÈçÏÂËùʾ£º¡¡¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡512¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡514¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

¡¡¡¡

///£ºContinuing¡¡¡¡

///////////¡¡Blocking¡¡via¡¡suspend£¨£©¡¡///////////¡¡¡¡

class¡¡SuspendResume¡¡extends¡¡Blockable¡¡£û¡¡¡¡

¡¡¡¡public¡¡SuspendResume£¨Container¡¡c£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡super£¨c£©£»¡¡¡¡¡¡¡¡¡¡¡¡

¡¡¡¡¡¡¡¡new¡¡Resumer£¨this£©£»¡¡¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

class¡¡SuspendResume1¡¡extends¡¡SuspendResume¡¡£û¡¡¡¡

¡¡¡¡public¡¡SuspendResume1£¨Container¡¡c£©¡¡£û¡¡super£¨c£©£»£ý¡¡¡¡

¡¡¡¡public¡¡synchronized¡¡void¡¡run£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡while£¨true£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡i£«£«£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡update£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡suspend£¨£©£»¡¡//¡¡Deprecated¡¡in¡¡Java¡¡1¡£2¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

class¡¡SuspendResume2¡¡extends¡¡SuspendResume¡¡£û¡¡¡¡

¡¡¡¡public¡¡SuspendResume2£¨Container¡¡c£©¡¡£û¡¡super£¨c£©£»£ý¡¡¡¡

¡¡¡¡public¡¡void¡¡run£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡while£¨true£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡change£¨£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡suspend£¨£©£»¡¡//¡¡Deprecated¡¡in¡¡Java¡¡1¡£2¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡synchronized¡¡void¡¡change£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡i£«£«£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡update£¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡¡¡

¡¡¡¡

class¡¡Resumer¡¡extends¡¡Thread¡¡£û¡¡¡¡

¡¡¡¡private¡¡SuspendResume¡¡sr£»¡¡¡¡

¡¡¡¡public¡¡Resumer£¨SuspendResume¡¡sr£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡this¡£sr¡¡=¡¡sr£»¡¡¡¡

¡¡¡¡¡¡¡¡start£¨£©£»¡¡¡¡

¡¡¡¡£ý¡¡¡¡

¡¡¡¡public¡¡void¡¡run£¨£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡while£¨true£©¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡try¡¡£û¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡sleep£¨1000£©£»¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡£ý¡¡catch¡¡£¨InterruptedException¡¡e£©£û£ý¡¡¡¡

¡¡¡¡¡¡¡¡¡¡¡¡sr¡£resume£¨£©£»¡¡//¡¡Deprecated¡¡in¡¡Java¡¡1¡£2¡¡¡¡

¡¡¡¡¡¡¡¡£ý¡¡¡¡

¡¡¡¡£ý¡¡¡¡

£ý¡¡///£ºContinued¡¡¡¡

¡¡¡¡

SuspendResume1¡¡Ò²ÌṩÁËÒ»¸öͬ²½µÄrun£¨£©·½·¨¡£Í¬ÑùµØ£¬µ±ÎÒÃÇÆô¶¯Õâ¸öÏß³ÌÒԺ󣬾ͻᷢÏÖÓëËü¹ØÁªµÄ¡¡



¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡513¡¡


¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­Page¡¡515¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­¡­

Peeker¡¡½øÈë¡°¶ÂÈû¡±×´Ì¬£¬µÈºò¶ÔÏóËø±»ÊÍ·Å£¬µ«ÄÇÓÀÔ¶²»»á·¢Éú¡£ºÍÍù³£Ò»Ñù£¬Õâ¸öÎÊÌâÔÚ¡¡

SuspendResume2¡¡ÀïµÃµ½Á˽â¾ö£¬Ëü²¢²»Í¬²½Õû¸örun£¨£©·½·¨£¬¶øÊDzÉÓÃÁËÒ»¸öµ¥¶ÀµÄͬ²½¡¡change£¨£©·½·¨¡£¡¡¡¡

¶ÔÓÚJava¡¡1¡£2£¬´ó¼ÒӦעÒâ¡¡suspend£¨£©ºÍresume£¨£©¡¡ÒÑ»ñµÃÇ¿ÁÒ·´¶Ô£¬ÒòΪ¡¡suspend£¨£©°üº¬Á˶ÔÏóËø£¬ËùÒÔ¼«¡¡

Ò׳öÏÖ¡°ËÀËø¡±ÏÖÏó¡£»»ÑÔÖ®£¬ºÜÈÝÒ׾ͻῴµ½Ðí¶à±»Ëø×¡µÄ¶ÔÏóÔÚɵºõºõµØµÈ´ý¶Ô·½¡£Õâ»áÔì³ÉÕû¸öÓ¦Óá¡

³ÌÐòµÄ¡°Äý¹Ì¡±¡£¾¡¹ÜÔÚһЩÀϳÌÐòÖл¹ÄÜ¿´µ½ËüÃǵÄ×Ù¼££¬µ«ÔÚÄãд×Ô¼ºµÄ³ÌÐòʱ£¬ÎÞÂÛÈçºÎ¶¼Ó¦±ÜÃâ¡£¡¡

±¾ÕÂÉÔºó¾Í»á½²ÊöÕýÈ·µÄ·½°¸ÊÇʲô¡£¡¡¡¡

¡¡¡¡

3¡£¡¡µÈ´ýºÍ֪ͨ¡¡¡¡

ͨ¹ýǰÁ½¸öÀý×ÓµÄʵ¼ù£¬ÎÒÃÇÖªµÀÎÞÂÛ¡¡sleep£¨£©»¹ÊÇ¡¡suspend£¨£©¶¼²»»áÔÚ×Ô¼º±»µ÷ÓõÄʱºò½â³ýËø¶¨¡£ÐèÒªÓá¡

µ½¶ÔÏóËøÊ±£¬ÇëÎñ±Ø×¢ÒâÕâ¸öÎÊÌâ¡£ÔÚÁíÒ»·½Ã棬wait£¨£©·½·¨ÔÚ±»µ÷ÓÃʱȴ»á½â³ýËø¶¨£¬ÕâÒâζ×Å¿ÉÔÚÖ´ÐС¡

wait£¨£©ÆÚ¼äµ÷ÓÃÏ̶߳ÔÏóÖÐµÄÆäËûͬ²½·½·¨¡£µ«ÔÚ½Ó×ŵÄÁ½¸öÀàÖУ¬ÎÒÃÇ¿´µ½¡¡run£¨£©·½·¨¶¼ÊÇ¡°Í¬²½¡±µÄ¡£¡¡

ÔÚwait£¨£©ÆÚ¼ä£¬Peeker¡¡ÈÔȻӵÓжÔͬ²½·½·¨µÄÍêÈ«·ÃÎÊȨÏÞ¡£ÕâÊÇÓÉÓÚwait£¨£©ÔÚ¹ÒÆðÄÚ²¿µ÷Óõķ½·¨Ê±£¬¡¡

»á½â³ý¶ÔÏóµÄËø¶¨¡£¡¡¡¡

ÎÒÃÇÒ²¿ÉÒÔ¿´µ½wait£¨£©µÄÁ½ÖÖÐÎʽ¡£µÚÒ»ÖÖÐÎʽ²ÉÓÃÒ»¸öÒÔºÁÃëΪµ¥Î»µÄ²ÎÊý£¬Ëü¾ßÓÐÓësleep£¨£©ÖÐÏàͬµÄ¡¡

º¬Ò壺ÔÝÍ£ÕâÒ»¶Î¹æ¶¨Ê±¼ä¡£Çø±ðÔÚÓÚÔÚwait£¨£©ÖУ¬¶ÔÏóËøÒѱ»½â³ý£¬¶øÇÒÄܹ»×ÔÓɵØÍ˳öwait£¨£©£¬ÒòΪһ¡¡

¸önotify£¨£©¡¡¿ÉÇ¿ÐÐʹʱ¼äÁ÷ÊÅ¡£¡¡¡¡

µÚ¶þÖÖÐÎʽ²»²ÉÓÃÈκβÎÊý£¬ÕâÒâζ×Åwait£¨£©»á³ÖÐøÖ´ÐУ¬Ö±µ½¡¡notify£¨£©½éÈëΪֹ¡£¶øÇÒÔÚÒ»¶Îʱ¼äÒԺ󣬡¡

²»»á×ÔÐÐÖÐÖ¹¡£¡¡¡¡

wait£¨£©ºÍ¡¡notify£¨£©¡¡±È½ÏÌØ±ðµÄÒ»¸öµØ·½ÊÇÕâÁ½¸ö·½·¨¶¼ÊôÓÚ»ù´¡Àà¡¡Object¡¡µÄÒ»²¿·Ö£¬²»Ïósleep£¨£©£¬¡¡

suspend£¨£©ÒÔ¼°resume£¨£©ÄÇÑùÊôÓÚThread¡¡µÄÒ»²¿·Ö¡£¾¡¹ÜÕâ±íÃæ¿´Óеã¶ùÆæ¹Ö¡ª¡ª¾ÓÈ»ÈÃרÃŽøÐÐÏ̴߳¦Àí¡¡

µÄ¶«Î÷³ÉΪͨÓûù´¡ÀàµÄÒ»²¿·Ö¡ª¡ªµ«×ÐϸÏëÏëÓÖ»áÊÍÈ»£¬ÒòΪËüÃDzÙ×ݵĶÔÏóËøÒ²ÊôÓÚÿ¸ö¶ÔÏóµÄÒ»²¿¡¡

·Ö¡£Òò´Ë£¬ÎÒÃǿɽ«Ò»¸öwait£¨£©ÖÃÈëÈκÎͬ²½·½·¨ÄÚ²¿£¬ÎÞÂÛÔÚÄǸöÀàÀïÊÇ·ñ×¼±¸½øÐÐÉæ¼°Ï̵߳Ĵ¦Àí¡£Ê¡¡

ʵÉÏ£¬ÎÒÃÇÄܵ÷ÓÃwait£¨£©µÄΨһµØ·½ÊÇÔÚÒ»¸öͬ²½µÄ·½·¨»ò´úÂë¿éÄÚ²¿¡£ÈôÔÚÒ»¸ö²»Í¬²½µÄ·½·¨ÄÚµ÷Óá¡

wait£¨£©»òÕß¡¡notify£¨£©£¬¾¡¹Ü³ÌÐòÈÔÈ»»á±àÒ룬µ«ÔÚÔËÐÐËüµÄʱºò£¬¾Í»áµÃµ½Ò»¸ö¡¡

IllegalMonitorStateException¡¡£¨·Ç·¨¼àÊÓÆ÷״̬ΥÀý£©£¬¶øÇÒ»á³öÏÖ¶àÉÙÓеãĪÃûÆäÃîµÄÒ»ÌõÏûÏ¢£º¡¡

¡¡¡°current¡¡thread¡¡not¡¡owner¡±£¨µ±Ç°Ï̲߳»ÊÇËùÓÐÈË¡±¡£×¢Òâ¡¡sleep£¨£©£¬suspend£¨£©ÒÔ¼°resume£¨£©¶¼ÄÜÔÚ²»¡¡

ͬ²½µÄ·½·¨ÄÚµ÷Óã¬ÒòΪËüÃDz»ÐèÒª¶ÔËø¶¨½øÐвÙ×÷¡£¡¡¡¡

Ö»ÄÜΪ×Ô¼ºµÄËø¶¨µ÷Óá¡wait£¨£©ºÍ¡¡notify£¨£©¡¡¡£Í¬ÑùµØ£¬ÈÔÈ»¿ÉÒÔ±àÒëÄÇЩÊÔͼʹÓôíÎóËø¶¨µÄ´úÂ룬µ«ºÍÍù³£¡¡

Ò»Ñù»á²úÉúͬÑùµÄ¡¡IllegalMonitorStateExceptionÎ¥Àý¡£ÎÒÃÇû°ì·¨ÓÃÆäËûÈ˵ĶÔÏóËøÀ´ÓÞŪϵͳ£¬µ«¿ÉÒª¡¡

Ç
·µ»ØÄ¿Â¼ ÉÏÒ»Ò³ ÏÂÒ»Ò³ »Øµ½¶¥²¿ ÔÞ£¨0£© ²È£¨0£©
δÔĶÁÍꣿ¼ÓÈëÊéÇ©ÒѱãÏ´μÌÐøÔĶÁ£¡
ÎÂܰÌáʾ£º ο´Ð¡ËµµÄͬʱ·¢±íÆÀÂÛ£¬Ëµ³ö×Ô¼ºµÄ¿´·¨ºÍÆäËüС»ï°éÃÇ·ÖÏíÒ²²»´íŶ£¡·¢±íÊéÆÀ»¹¿ÉÒÔ»ñµÃ»ý·ÖºÍ¾­Ñé½±Àø£¬ÈÏÕæÐ´Ô­´´ÊéÆÀ ±»²ÉÄÉΪ¾«ÆÀ¿ÉÒÔ»ñµÃ´óÁ¿½ð±Ò¡¢»ý·ÖºÍ¾­Ñé½±ÀøÅ¶£¡