Õ¾ÄÚËÑË÷: ÇëÊäÈëËÑË÷¹Ø¼ü´Ê

µ±Ç°Ò³Ãæ: ¿ª·¢×ÊÁÏÊ×Ò³ ¡ú Java רÌâ ¡ú Java¶àÏ̳߳ÌÐòÉè¼ÆÈëÃÅ

Java¶àÏ̳߳ÌÐòÉè¼ÆÈëÃÅ

ÕªÒª: ÔÚJavaÓïÑÔ²úÉúǰ£¬´«Í³µÄ³ÌÐòÉè¼ÆÓïÑԵijÌÐòͬһʱ¿ÌÖ»Äܵ¥ÈÎÎñ²Ù×÷£¬Ð§Âʷdz£µÍ£¬ÀýÈç³ÌÐòÍùÍùÔÚ½ÓÊÕÊý¾ÝÊäÈëʱ·¢Éú×èÈû......
<iframe align=right frameBorder=0 height=300 marginHeight=0 marginWidth=0 scrolling=no src="http://www.chinabyte.com/tag/cont_flash_software.html" width=360></iframe>¡¡¡¡ÔÚJavaÓïÑÔ²úÉúǰ£¬´«Í³µÄ³ÌÐòÉè¼ÆÓïÑԵijÌÐòͬһʱ¿ÌÖ»Äܵ¥ÈÎÎñ²Ù×÷£¬Ð§Âʷdz£µÍ£¬ÀýÈç³ÌÐòÍùÍùÔÚ½ÓÊÕÊý¾ÝÊäÈëʱ·¢Éú×èÈû£¬Ö»Óеȵ½³ÌÐò»ñµÃÊý¾Ýºó²ÅÄܼÌÐøÔËÐС£ Ëæ×ÅInternetµÄѸÃÍ·¢Õ¹£¬ÕâÖÖ×´¿öÔ½À´Ô½²»ÄÜÈÃÈËÃÇÈÌÊÜ£ºÈç¹ûÍøÂç½ÓÊÕÊý¾Ý×èÈû£¬ºǫ́³ÌÐò¾Í´¦Óڵȴý״̬¶ø²»¼ÌÐøÈκβÙ×÷£¬¶øÕâÖÖ×èÈûÊǾ­³£»áÅöµ½µÄ£¬´ËʱCPU×ÊÔ´±»°×°×µÄÏÐÖÃÆðÀ´¡£Èç¹ûÔÚºǫ́³ÌÐòÖÐÄܹ»Í¬Ê±´¦Àí¶à¸öÈÎÎñ£¬¸Ã¶àºÃ°¡£¡Ó¦Internet¼¼Êõ¶øÉúµÄJavaÓïÑÔ½â¾öÁËÕâ¸öÎÊÌ⣬¶àÏ̳߳ÌÐòÊÇJavaÓïÑÔµÄÒ»¸öºÜÖØÒªµÄÌØµã¡£ÔÚÒ»¸öJava³ÌÐòÖУ¬ÎÒÃÇ¿ÉÒÔͬʱ²¢ÐÐÔËÐжà¸öÏà¶Ô¶ÀÁ¢µÄỊ̈߳¬ÀýÈ磬ÎÒÃÇÈç¹û´´½¨Ò»¸öÏß³ÌÀ´½øÐÐÊý¾ÝÊäÈëÊä³ö£¬¶ø´´½¨ÁíÒ»¸öÏß³ÌÔÚºǫ́½øÐÐÆäËüµÄÊý¾Ý´¦Àí£¬Èç¹ûÊäÈëÊä³öÏß³ÌÔÚ½ÓÊÕÊý¾Ýʱ×èÈû£¬¶ø´¦ÀíÊý¾ÝµÄÏß³ÌÈÔÈ»ÔÚÔËÐС£¶àÏ̳߳ÌÐòÉè¼Æ´ó´óÌá¸ßÁ˳ÌÐòÖ´ÐÐЧÂʺʹ¦ÀíÄÜÁ¦¡£

¡¡¡¡Ï̵߳Ĵ´½¨

¡¡¡¡ÎÒÃÇÖªµÀJavaÊÇÃæÏò¶ÔÏóµÄ³ÌÐòÓïÑÔ£¬ÓÃJava½øÐгÌÐòÉè¼Æ¾ÍÊÇÉè¼ÆºÍʹÓÃÀ࣬JavaΪÎÒÃÇÌṩÁËÏß³ÌÀàThreadÀ´´´½¨Ị̈߳¬´´½¨Ïß³ÌÓë´´½¨ÆÕͨµÄÀàµÄ¶ÔÏóµÄ²Ù×÷ÊÇÒ»ÑùµÄ£¬¶øÏ߳̾ÍÊÇThreadÀà»òÆä×ÓÀàµÄʵÀý¶ÔÏó¡£ÏÂÃæÊÇÒ»¸ö´´½¨Æô¶¯Ò»¸öÏ̵߳ÄÓï¾ä£º

¡¡¡¡Thread thread1=new Thread(); file://ÉùÃ÷Ò»¸ö¶ÔÏóʵÀý£¬¼´´´½¨Ò»¸öỊ̈߳»

¡¡¡¡Thread1.run(); file://ÓÃThreadÀàÖеÄrun()·½·¨Æô¶¯Ị̈߳»

¡¡¡¡´ÓÕâ¸öÀý×Ó£¬ÎÒÃÇ¿ÉÒÔͨ¹ýThread()¹¹Ôì·½·¨´´½¨Ò»¸öỊ̈߳¬²¢Æô¶¯¸ÃÏ̡߳£ÊÂʵÉÏ£¬Æô¶¯Ị̈߳¬Ò²¾ÍÊÇÆô¶¯Ï̵߳Ärun()·½·¨£¬¶øThreadÀàÖеÄrun()·½·¨Ã»ÓÐÈκβÙ×÷Óï¾ä£¬ËùÒÔÕâ¸öÏß³ÌûÓÐÈκβÙ×÷¡£ÒªÊ¹Ïß³ÌʵÏÖÔ¤¶¨¹¦ÄÜ£¬±ØÐ붨Òå×Ô¼ºµÄrun()·½·¨¡£JavaÖÐͨ³£ÓÐÁ½ÖÖ·½Ê½¶¨Òårun()·½·¨£º

¡¡¡¡Í¨¹ý¶¨ÒåÒ»¸öThreadÀàµÄ×ÓÀ࣬ÔÚ¸Ã×ÓÀàÖÐÖØÐ´run()·½·¨¡£Thread×ÓÀàµÄʵÀý¶ÔÏó¾ÍÊÇÒ»¸öỊ̈߳¬ÏÔÈ»£¬¸ÃÏß³ÌÓÐÎÒÃÇ×Ô¼ºÉè¼ÆµÄÏß³ÌÌårun()·½·¨£¬Æô¶¯Ïß³Ì¾ÍÆô¶¯ÁË×ÓÀàÖÐÖØÐ´µÄrun()·½·¨¡£

¡¡¡¡Í¨¹ýRunnable½Ó¿Ú£¬ÔڸýӿÚÖж¨Òårun()·½·¨µÄ½Ó¿Ú¡£Ëùν½Ó¿Ú¸úÀà·Ç³£ÀàËÆ£¬Ö÷ÒªÓÃÀ´ÊµÏÖÌØÊ⹦ÄÜ£¬È縴ÔÓ¹ØÏµµÄ¶àÖØ¼Ì³Ð¹¦ÄÜ¡£ÔÚ´Ë£¬ÎÒÃǶ¨ÒåÒ»¸öʵÏÖRunnable() ½Ó¿ÚµÄÀ࣬ÔÚ¸ÃÀàÖж¨Òå×Ô¼ºµÄrun()·½·¨£¬È»ºóÒÔ¸ÃÀàµÄʵÀý¶ÔÏóΪ²ÎÊýµ÷ÓÃThreadÀàµÄ¹¹Ôì·½·¨À´´´½¨Ò»¸öÏ̡߳£

¡¡¡¡Ï̱߳» ʵ¼Ê´´½¨ºó´¦ÓÚ´ýÃü״̬£¬¼¤»î£¨Æô¶¯£©Ï߳̾ÍÊÇÆô¶¯Ï̵߳Ärun()·½·¨£¬ÕâÊÇͨ¹ýµ÷ÓÃÏ̵߳Ästart()·½·¨À´ÊµÏֵġ£

¡¡¡¡ÏÂÃæÒ»¸öÀý×Óʵ¼ùÁËÈçºÎͨ¹ýÉÏÊöÁ½ÖÖ·½·¨´´½¨Ï̲߳¢Æô¶¯ËüÃÇ£º

¡¡¡¡// ͨ¹ýThreadÀàµÄ×ÓÀà´´½¨µÄỊ̈߳»

<table bgColor=#ffffff border=0 cellPadding=0 cellSpacing=0 width=600> <tr> <td>¡¡¡¡¡¡class thread1 extends Thread
¡¡¡¡¡¡¡¡{ file://×Ô¶¨ÒåÏ̵߳Ärun()·½·¨£»
¡¡¡¡¡¡¡¡¡¡public void run()
¡¡¡¡¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡System.out.println("Thread1 is running¡­");
¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡} </td></tr></table>
¡¡¡¡file://ͨ¹ýRunnable½Ó¿Ú´´½¨µÄÁíÍâÒ»¸öỊ̈߳»

<table bgColor=#ffffff border=0 cellPadding=0 cellSpacing=0 width=600> <tr> <td>¡¡¡¡class thread2 implements Runnable

¡¡¡¡¡¡{ file://×Ô¶¨ÒåÏ̵߳Ärun()·½·¨£»

¡¡¡¡¡¡¡¡public void run()
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡System.out.println("Thread2 is running¡­");
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡} </td></tr></table>
¡¡¡¡¡¡file://³ÌÐòµÄÖ÷Àà'

<table bgColor=#ffffff border=0 cellPadding=0 cellSpacing=0 width=600> <tr> <td>¡¡¡¡¡¡class Multi_Thread file://ÉùÃ÷Ö÷Àࣻ
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡plubic static void mail(String args[]) file://ÉùÃ÷Ö÷·½·¨£»
¡¡¡¡¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡¡thread1 threadone=new thread1(); file://ÓÃThreadÀàµÄ×ÓÀà´´½¨Ị̈߳»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡Thread threadtwo=new Thread(new thread2()); file://ÓÃRunnable½Ó¿ÚÀàµÄ¶ÔÏó´´½¨Ị̈߳»
¡¡¡¡¡¡¡¡¡¡¡¡¡¡threadone.start(); threadtwo.start(); file://strat()·½·¨Æô¶¯Ị̈߳»
¡¡¡¡¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡¡¡} </td></tr></table>
¡¡¡¡ÔËÐиóÌÐò¾Í¿ÉÒÔ¿´³ö£¬Ïß³ÌthreadoneºÍthreadtwo½»ÌæÕ¼ÓÃCPU£¬´¦ÓÚ²¢ÐÐÔËÐÐ״̬¡£¿ÉÒÔ¿´³ö£¬Æô¶¯Ï̵߳Ärun()·½·¨ÊÇͨ¹ýµ÷ÓÃÏ̵߳Ästart()·½·¨À´ÊµÏÖµÄ(¼ûÉÏÀýÖÐÖ÷Àà)£¬µ÷ÓÃstart()·½·¨Æô¶¯Ï̵߳Ärun()·½·¨²»Í¬ÓÚÒ»°ãµÄµ÷Ó÷½·¨£¬µ÷ÓÃÒ»°ã·½·¨Ê±£¬±ØÐëµÈµ½Ò»°ã·½·¨Ö´ÐÐÍê±Ï²ÅÄܹ»·µ»Østart()·½·¨£¬¶øÆô¶¯Ï̵߳Ärun()·½·¨ºó£¬start()¸æËßϵͳ¸ÃÏß³Ì×¼±¸¾ÍÐ÷¿ÉÒÔÆô¶¯run()·½·¨ºó£¬¾Í·µ»Østart()·½·¨Ö´Ðе÷ÓÃstart()·½·¨Óï¾äÏÂÃæµÄÓï¾ä£¬Õâʱrun()·½·¨¿ÉÄÜ»¹ÔÚÔËÐУ¬ÕâÑù£¬Ïß³ÌµÄÆô¶¯ºÍÔËÐв¢ÐнøÐУ¬ÊµÏÖÁ˶àÈÎÎñ²Ù×÷¡£

¡¡¡¡Ï̵߳ÄÓÅÏȼ¶

¡¡¡¡¶ÔÓÚ¶àÏ̳߳ÌÐò£¬Ã¿¸öÏ̵߳ÄÖØÒª³Ì¶ÈÊDz»¾¡Ïàͬ£¬Èç¶à¸öÏß³ÌÔڵȴý»ñµÃCPUʱ¼äʱ£¬ÍùÍùÎÒÃÇÐèÒªÓÅÏȼ¶¸ßµÄÏß³ÌÓÅÏÈÇÀÕ¼µ½CPUʱ¼äµÃÒÔÖ´ÐУ»ÓÖÈç¶à¸öÏ߳̽»ÌæÖ´ÐÐʱ£¬ÓÅÏȼ¶¾ö¶¨Á˼¶±ð¸ßµÄÏ̵߳õ½CPUµÄ´ÎÊý¶àһЩÇÒʱ¼ä¶à³¤Ò»Ð©£»ÕâÑù£¬¸ßÓÅÏȼ¶µÄÏ̴߳¦ÀíµÄÈÎÎñЧÂʾ͸ßһЩ¡£

¡¡¡¡JavaÖÐÏ̵߳ÄÓÅÏȼ¶´ÓµÍµ½¸ßÒÔÕûÊý1~10±íʾ£¬¹²·ÖΪ10¼¶£¬ÉèÖÃÓÅÏȼ¶ÊÇͨ¹ýµ÷ÓÃÏ̶߳ÔÏóµÄsetPriority()·½·¨£¬ÈçÉÏÀýÖУ¬ÉèÖÃÓÅÏȼ¶µÄÓï¾äΪ£º

¡¡¡¡thread1 threadone=new thread1(); file://ÓÃThreadÀàµÄ×ÓÀà´´½¨Ị̈߳»

¡¡¡¡Thread threadtwo=new Thread(new thread2()); file://ÓÃRunnable½Ó¿ÚÀàµÄ¶ÔÏó´´½¨Ị̈߳»

¡¡¡¡threadone.setPriority(6); file://ÉèÖÃthreadoneµÄÓÅÏȼ¶6£»

¡¡¡¡threadtwo.setPriority(3); file://ÉèÖÃthreadtwoµÄÓÅÏȼ¶3£»

¡¡¡¡threadone.start(); threadtwo.start(); file://strat()·½·¨Æô¶¯Ị̈߳»

¡¡¡¡ÕâÑù£¬Ïß³Ìthreadone½«»áÓÅÏÈÓÚÏß³ÌthreadtwoÖ´ÐУ¬²¢½«Õ¼Óиü¶àµÄCPUʱ¼ä¡£¸ÃÀýÖУ¬ÓÅÏȼ¶ÉèÖ÷ÅÔÚÏß³ÌÆô¶¯Ç°£¬Ò²¿ÉÒÔÔÚÆô¶¯ºó½øÐÐÉèÖã¬ÒÔÂú×㲻ͬµÄÓÅÏȼ¶ÐèÇó¡£

¡¡¡¡Ï̵߳ģ¨Í¬²½£©¿ØÖÆ

¡¡¡¡Ò»¸öJava³ÌÐòµÄ¶àÏß³ ÌÖ®¼ä¿ÉÒÔ¹²ÏíÊý¾Ý¡£µ±Ïß³ÌÒÔÒì²½·½Ê½·ÃÎʹ²ÏíÊý¾Ýʱ£¬ÓÐʱºòÊDz»°²È«µÄ»òÕß²»ºÍÂß¼­µÄ¡£±ÈÈ磬ͬһʱ¿ÌÒ»¸öÏß³ÌÔÚ¶ÁÈ¡Êý¾Ý£¬ÁíÍâÒ»¸öÏß³ÌÔÚ´¦ÀíÊý¾Ý£¬µ±´¦ÀíÊý¾ÝµÄÏß³ÌûÓеȵ½¶ÁÈ¡Êý¾ÝµÄÏ̶߳ÁÈ¡Íê±Ï¾ÍÈ¥´¦ÀíÊý¾Ý£¬±ØÈ»µÃµ½´íÎóµÄ´¦Àí½á¹û¡£ÕâºÍÎÒÃÇÇ°ÃæÌáµ½µÄ¶ÁÈ¡Êý¾ÝºÍ´¦ÀíÊý¾Ý²¢ÐжàÈÎÎñ²¢²»Ã¬¶Ü£¬Õâ¶ùÖ¸µÄÊÇ´¦ÀíÊý¾ÝµÄÏ̲߳»ÄÜ´¦Àíµ±Ç°»¹Ã»ÓжÁÈ¡½áÊøµÄÊý¾Ý£¬µ«ÊÇ¿ÉÒÔ´¦ÀíÆäËüµÄÊý¾Ý¡£

¡¡¡¡Èç¹ûÎÒÃDzÉÓöàÏß³Ìͬ²½¿ØÖÆ»úÖÆ£¬µÈµ½µÚÒ»¸öÏ̶߳ÁÈ¡ÍêÊý¾Ý£¬µÚ¶þ¸öÏ̲߳ÅÄÜ´¦Àí¸ÃÊý¾Ý£¬¾Í»á±ÜÃâ´íÎ󡣿ɼû£¬Ïß³Ìͬ²½ÊǶàÏ̱߳à³ÌµÄÒ»¸öÏàµ±ÖØÒªµÄ¼¼Êõ¡£

¡¡¡¡ÔÚ½²Ï̵߳Äͬ²½¿ØÖÆÇ°ÎÒÃÇÐèÒª½»´úÈçϸÅÄ

¡¡¡¡1 ÓÃJava¹Ø¼ü×Ösynchonizedͬ²½¶Ô¹²ÏíÊý¾Ý²Ù×÷µÄ·½·¨

¡¡¡¡ÔÚÒ»¸ö¶ÔÏóÖУ¬ÓÃsynchonizedÉùÃ÷µÄ·½·¨ÎªÍ¬²½·½·¨¡£JavaÖÐÓÐÒ»¸öͬ²½Ä£ÐÍ-¼àÊÓÆ÷£¬¸ºÔð¹ÜÀíÏ̶߳ԶÔÏóÖеÄͬ²½·½·¨µÄ·ÃÎÊ£¬ËüµÄÔ­ÀíÊÇ£º¸³Óè¸Ã¶ÔÏóΨһһ°Ñ'Ô¿³×'£¬µ±¶à¸öÏ߳̽øÈë¶ÔÏó£¬Ö»ÓÐÈ¡µÃ¸Ã¶ÔÏóÔ¿³×µÄÏ̲߳ſÉÒÔ·ÃÎÊͬ²½·½·¨£¬ÆäËüÏß³ÌÔڸöÔÏóÖеȴý£¬Ö±µ½¸ÃÏß³ÌÓÃwait()·½·¨·ÅÆúÕâ°ÑÔ¿³×£¬ÆäËüµÈ´ýµÄÏß³ÌÇÀÕ¼¸ÃÔ¿³×£¬ÇÀÕ¼µ½Ô¿³×µÄÏ̺߳ó²Å¿ÉµÃÒÔÖ´ÐУ¬¶øÃ»ÓÐÈ¡µÃÔ¿³×µÄÏß³ÌÈÔ±»×èÈûÔڸöÔÏóÖеȴý¡£

¡¡¡¡file://ÉùÃ÷ͬ²½µÄÒ»ÖÖ·½Ê½£º½«·½·¨ÉùÃ÷ͬ²½

<table bgColor=#ffffff border=0 cellPadding=0 cellSpacing=0 width=600> <tr> <td>¡¡¡¡class store
¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡public synchonized void store_in()
¡¡¡¡¡¡¡¡{
¡¡¡¡¡¡¡¡¡¡¡¡¡­.
¡¡¡¡¡¡¡¡}
¡¡¡¡¡¡¡¡public synchonized void store_out(){
¡¡¡¡¡¡¡¡ ¡¡ ¡­.}
¡¡¡¡¡¡¡¡} </td></tr></table>
¡¡¡¡2 ÀûÓÃwait()¡¢notify()¼°notifyAll()·½·¨·¢ËÍÏûϢʵÏÖÏ̼߳äµÄÏ໥ÁªÏµ

¡¡¡¡Java³ÌÐòÖжà¸öÏß³Ìͨ¹ýÏûÏ¢À´ÊµÏÖ»¥¶¯ÁªÏµµÄ£¬Õ⼸ÖÖ·½·¨ÊµÏÖÁËÏ̼߳äµÄÏûÏ¢·¢ËÍ¡£ÀýÈ綨ÒåÒ»¸ö¶ÔÏóµÄsynchonized ·½·¨£¬Í¬Ò»Ê±¿ÌÖ»Äܹ»ÓÐÒ»¸öÏ̷߳ÃÎʸöÔÏóÖеÄͬ²½·½·¨£¬ÆäËüÏ̱߳»×èÈû¡£Í¨³£¿ÉÒÔÓÃnotify()»ònotifyAll()·½·¨»½ÐÑÆäËüÒ»¸ö»òËùÓÐÏ̡߳£¶øÊ¹ÓÃwait()·½·¨À´Ê¹¸ÃÏ̴߳¦ÓÚ×èÈû״̬£¬µÈ´ýÆäËüµÄÏß³ÌÓÃnotify()»½ÐÑ¡£

¡¡¡¡Ò»¸öʵ¼ÊµÄÀý×Ó¾ÍÊÇÉú²úºÍÏúÊÛ£¬Éú²úµ¥Ôª½«²úÆ·Éú²ú³öÀ´·ÅÔÚ²Ö¿âÖУ¬ÏúÊÛµ¥ÔªÔò´Ó²Ö¿âÖÐÌá×ß²úÆ·£¬ÔÚÕâ¸ö¹ý³ÌÖУ¬ÏúÊÛµ¥Ôª±ØÐëÔÚ²Ö¿âÖÐÓвúƷʱ²ÅÄÜÌá»õ£»Èç¹û²Ö¿âÖÐûÓвúÆ·£¬ÔòÏúÊÛµ¥Ôª±ØÐëµÈ´ý¡£

¡¡¡¡³ÌÐòÖУ¬¼ÙÈçÎÒÃǶ¨ÒåÒ»¸ö²Ö¿âÀàstore£¬¸ÃÀàµÄʵÀý¶ÔÏó¾ÍÏ൱Óڲֿ⣬ÔÚstoreÀàÖж¨ÒåÁ½¸ö³ÉÔ±·½·¨£ºstore_in()£¬ÓÃÀ´Ä£Äâ²úÆ·ÖÆÔìÕßÍù²Ö¿âÖÐÌí¼Ó²úÆ·£»strore_out()·½·¨ÔòÓÃÀ´Ä£ÄâÏúÊÛÕß´Ó²Ö¿âÖÐÈ¡×ß²úÆ·¡£È»ºó¶¨ÒåÁ½¸öÏß³ÌÀࣺcustomerÀ࣬ÆäÖеÄrun()·½·¨Í¨¹ýµ÷ÓòֿâÀàÖеÄstore_out()´Ó²Ö¿âÖÐÈ¡×ß²úÆ·£¬Ä£ÄâÏúÊÛÕߣ»ÁíÍâÒ»¸öÏß³ÌÀàproducerÖеÄrun()·½·¨Í¨¹ýµ÷ÓòֿâÀàÖеÄstore_in()·½·¨Ïò²Ö¿âÌí¼Ó²úÆ·£¬Ä£Äâ²úÆ·ÖÆÔìÕß¡£ÔÚÖ÷ÀàÖд´½¨²¢Æô¶¯Ị̈߳¬ÊµÏÖÏò²Ö¿âÖÐÌí¼Ó²úÆ·»òÈ¡×ß²úÆ·¡£

¡¡¡¡Èç¹û²Ö¿âÀàÖеÄstore_in() ºÍstore_out()·½·¨²»ÉùÃ÷ͬ²½£¬Õâ¾ÍÊǸöÒ»°ãµÄ¶àỊ̈߳¬ÎÒÃÇÖªµÀ£¬Ò»¸ö³ÌÐòÖеĶàÏß³ÌÊǽ»ÌæÖ´Ðеģ¬ÔËÐÐÒ²ÊÇÎÞÐòµÄ£¬ÕâÑù£¬¾Í¿ÉÄÜ´æÔÚÕâÑùµÄÎÊÌ⣺

¡¡¡¡²Ö¿âÖÐûÓвúÆ·ÁË£¬ÏúÊÛÕß»¹ÔÚ²»¶Ï¹â¹Ë£¬¶øÇÒ»¹²»Í£µÄÔÚ'È¡'²úÆ·£¬ÕâÔÚÏÖʵÖÐÊDz»¿É˼ÒåµÄ£¬ÔÚ³ÌÐòÖоͱíÏÖΪ¸ºÖµ£»Èç¹û½«²Ö¿âÀàÖеÄstroe_in()ºÍstore_out()·½·¨ÉùÃ÷ͬ²½£¬ÈçÉÏÀýËùʾ£º¾Í¿ØÖÆÁËͬһʱ¿ÌÖ»ÄÜÓÐÒ»¸öÏ̷߳ÃÎʲֿâ¶ÔÏóÖеÄͬ²½·½·¨£»¼´Ò»¸öÉú²úÀàÏ̷߳ÃÎʱ»ÉùÃ÷Ϊͬ²½µÄstore_in()·½·¨Ê±£¬ÆäËüÏ߳̽«²»Äܹ»·ÃÎʶÔÏóÖеÄstore_out()ͬ²½·½·¨£¬µ±È»Ò²²»ÄÜ·ÃÎÊstore_in()·½·¨¡£±ØÐëµÈµ½¸ÃÏ̵߳÷ÓÃwait()·½·¨·ÅÆúÔ¿³×£¬ÆäËüÏ̲߳ÅÓлú»á·ÃÎÊͬ²½·½·¨¡£

¡¡¡¡Õâ¸öÔ­Àíʵ¼ÊÖÐÒ²ºÜºÃÀí½â£¬µ±Éú²úÕߣ¨producer£©È¡µÃ²Ö¿âΨһµÄÔ¿³×£¬¾ÍÏò²Ö¿âÖÐÌí·Å²úÆ·£¬´ËʱÆäËüµÄÏúÊÛÕߣ¨customer£¬¿ÉÒÔÊÇÒ»¸ö »ò¶à¸ö£©²»¿ÉÄÜÈ¡µÃÔ¿³×£¬Ö»Óе±Éú²úÕßÌí·Å²úÆ·½áÊø£¬½»»¹Ô¿³×²¢ÇÒ֪ͨÏúÊÛÕߣ¬²»Í¬µÄÏúÊÛÕ߸ù¾ÝÈ¡µÃÔ¿³×µÄÏȺóÓë·ñ¾ö¶¨ÊÇ·ñ¿ÉÒÔ½øÈë²Ö¿âÖÐÌá×ß²úÆ·¡£



¡ü·µ»ØÄ¿Â¼
ǰһƪ: ÓöàÏß³ÌÓÖÓм¸ÖÖ³£Óõıà³ÌÄ£ÐÍ
ºóһƪ: ÓÃJBuilder7¿ª·¢Ò»¸ö¼òµ¥µÄJ2EE Ó¦ÓÃ