¡¡¡¡Í¨¹ý·ÖÎöJavaÏ̶߳ѽâ¾öJavaÓ¦ÓóÌÐòÖдæÔÚÎÊÌâµÄ¼¼Êõ¡£ÎÒÃÇ¿ÉÒÔʹÓÃÏ̶߳ÑÀ´·ÖÎöÖîÈçÓ¦ÓóÌÐò¹ÒÆð£¬ÏìӦʱ¼ä³¤ÒÔ¼°³ÌÐò±ÀÀ£µÈÇé¿ö¡£ÔÚÏêϸ½éÉÜ·ÖÎöÏ̶߳ѵļ¼Êõ֮ǰ£¬ÎÒÃÇÏÈÀ´¼òÒªµØ¿´¿´Ï̶߳ѱ¾Éí¡£
¡¡¡¡Í¨¹ý·ÖÎöJavaÏ̶߳ѽâ¾öJavaÓ¦ÓóÌÐòÖдæÔÚÎÊÌâµÄ¼¼Êõ¡£ÎÒÃÇ¿ÉÒÔʹÓÃÏ̶߳ÑÀ´·ÖÎöÖîÈçÓ¦ÓóÌÐò¹ÒÆð£¬ÏìӦʱ¼ä³¤ÒÔ¼°³ÌÐò±ÀÀ£µÈÇé¿ö¡£ÔÚÏêϸ½éÉÜ·ÖÎöÏ̶߳ѵļ¼Êõ֮ǰ£¬ÎÒÃÇÏÈÀ´¼òÒªµØ¿´¿´Ï̶߳ѱ¾Éí¡£
¡¡¡¡JavaÏ̶߳ÑÊÇÒ»¸öÔËÐÐÖеÄJavaÓ¦ÓóÌÐòµÄËùÓÐÏ̵߳ÄÒ»¸ö¿ìÕÕ¡£Ëü»áÏÔʾһЩÏñµ±Ç°µÄ¶ÑÕ»¸ú×Ù¡¢×´Ì¬ÒÔ¼°Ïß³ÌÃû³ÆÖ®ÀàµÄÐÅÏ¢¡£Ïß³ÌÁбíÖаüÀ¨ÓÉJVM±¾Éí´´½¨µÄỊ̈߳¨¸ºÔðÀ¬»øÊÕ¼¯¡¢ÐźŴ¦ÀíµÈ¹ÜÀí¹¤×÷£©ºÍÓÉÓ¦ÓóÌÐò´´½¨µÄÏ̡߳£
¡¡¡¡Í¨¹ý¸øJVM·¢ËÍÒ»¸öSIGQUITÐźţ¬Äú¿ÉÒԵõ½Ò»¸öÏ̶߳ѡ£ÔÚUnix²Ù×÷ϵͳ£¨Solaris/Linux/HP-UnixµÈ£©ÖУ¬Í¨¹ýkill-3ÃüÁî¿ÉÒԵõ½Ï̶߳ѡ£Êä³ö³öÏ̶߳ÑÖ®ºó£¬Ó¦ÓóÌÐò¼ÌÐøÕý³£ÔËÐС£µ±Äú¸øJVM·¢ËÍSIGQUITÐźÅʱ£¬JVMµÄÐźŴ¦ÀíÆ÷»áͨ¹ýÊä³öÏ̶߳ÑÀ´ÏìÓ¦ÕâÒ»Ðźš£µ±³ÌÐòÔËÐеÄʱºò£¬Äú¿ÉÒÔÔÚÈκεãµÃµ½Ï̶߳ѡ£
¡¡¡¡Ï̶߳ѵÄÒ»¸öÀý×Ó
¡¡¡¡Çåµ¥1ÏÔʾµÄ¾ÍÊÇÒ»¸öʹÓÃSun JVM 1.4.1µÄµ¥Ïß³ÌÓ¦ÓóÌÐòÖеÄÏ̶߳ѵÄÀý×Ó¡£mainÏß³ÌÊÇÖ÷Ó¦ÓóÌÐòÏ̡߳£ËùÓÐÆäËûµÄÏ̶߳¼ÊÇÓÉJVM´´½¨µÄ£¬¸ºÔðÍê³ÉһЩ¹ÜÀí¹¤×÷¡£µ±·ÖÎöÓ¦ÓóÌÐò¼¶µÄÎÊÌâʱ£¬ÎÒÃÇͨ³£Ö»¹ØÐÄÓ¦ÓóÌÐòÏ̡߳£ÏÂÃ棬ÎÒÃÇÀ´·ÖÎöÇåµ¥1ÖÐmainÏ̵߳ĶÑÕ»¸ú×Ù¡£
[code]"main" prio=5 tid=0x002358B8 nid=0x7f8 runnable [6f000..6fc40]
at test.method1(test.java:10)
at test.main(test.java:5)[/code]
¡¡¡¡´ÓÕâ¸ö´úÂëƬ¶ÏÖÐÄú¿ÉÒÔ¿´µ½£¬Ò»¸öÏ̶߳ÑÕ»¸ú×ÙÓÐÒ»¸öÃû³Æ¡¢Ïß³ÌÓÅÏȼ¶£¨prio=5£©¡¢×´Ì¬£¨¿ÉÔËÐеģ©¡¢Ô´´úÂëÐкţ¬ÒÔ¼°·½·¨µ÷ÓᣴÓÕâ¸ö¶ÑÕ»¸ú×ÙÖпÉÒԵõ½ÈçϽáÂÛ£ºmainÏß³ÌÖ´ÐÐtestÀàµÄmethod1·½·¨ÖеÄһЩ´úÂë¡£¶ø¶Ômethod1·½·¨µÄµ÷ÓÃÊÇÓÉͬһ¸öÀàµÄmain·½·¨Íê³ÉµÄ¡£ÄúÒ²¿ÉÒÔ¿´µ½ÄÇЩ·½·¨ÖÐÈ·ÇеÄÔ´´úÂëÐкš£
¡¡¡¡ÔÚ´ÓһЩ¸ü¸´ÔÓµÄÇé¿öÈ¥·ÖÎöÏ̶߳Ñ֮ǰ£¬ÎÒÃÇÏÈÀ´ÌÖÂÛÄÇЩ¿ÉÒÔÔÚÏ̶߳ÑÖп´µ½µÄÏ̵߳IJ»Í¬×´Ì¬ÒÔ¼°ËüÃǵÄÒâÒå¡£
¡¡¡¡? ¿ÉÔËÐеģºµ±»ñµÃCPUµÄʹÓÃȨʱ¾Í¿ÉÒÔÔËÐлò×¼±¸ºÃÔËÐеÄ״̬¡£JRockitÏ̶߳ѰÑÕâÖÖ״̬³ÆΪACTIVE¡£
¡¡¡¡? ÔÚ¼àÊÓÖеȴý£ºÖ¸ÔÚÒ»¸ö¶ÔÏóÉÏÐÝÃß»òµÈ´ýÉÏÊöʱ¼ä£¬»òÕߵȴýÁíÒ»¸öÏ̵߳Ä֪ͨ¡£ÕâÖÖÇé¿ö»á³öÏÖÔÚ¶ÔThread¶ÔÏóµ÷ÓÃÈκÎsleep() ·½·¨»òÕ߶ÔObjectµ÷ÓÃwait() ·½·¨Ê±¡£
¡¡¡¡ÀýÈ磬ÔÚBEA WebLogic ServerÖУ¬¿ÕÏеÄÖ´ÐÐÏ߳̾ʹ¦ÓÚÕâÖÖ״̬£¬ËüÃÇ»áµÈ´ýÒ»¸ösocketÔĶÁÆ÷Ïß³Ì֪ͨËüÃÇÈ¥×öһЩÐµĹ¤×÷¡£¶ÑÕ»¸ú×ÙÈçÏÂËùʾ£º
[code]"ExecuteThread: '2' for queue: 'weblogic.admin.RMI'"
daemon prio=5 tid=0x1752F040 nid=0x180c in Object.wait()
[1887f000..1887fd8c]
at java.lang.Object.wait(Native Method)
waiting on (a weblogic.kernel.ExecuteThread)
at java.lang.Object.wait(Object.java:426)[/code]
¡¡¡¡JVMµÄÆäËû°æ±¾°ÑÕâÖÖ״̬³ÆΪCW¡£JRockit½«ÕâÖÖ״̬³ÆΪWAITING¡£
¡¡¡¡? µÈ´ý¼àÊÓʵÌ壺µÈ´ýËøסһ¸ö¶ÔÏó£¨ÆäËûÏß³ÌÄ¿Ç°Õý¿ØÖÆ×ÅËø£©¡£Èç¹ûÁ½¸ö»òÕ߶à¸öÏ̶߳¼ÏëÔÚͬһʱ¿ÌÖ´ÐÐÒ»¸ö¶ÔÏóµÄijЩͬ²½´úÂë¿é»ò·½·¨£¬¾Í»á³öÏÖÕâÖÖÇé¿ö¡£Çë×¢Ò⣬Ëø×ÜÊǼÓÔÚÒ»¸ö¶ÔÏóÉ϶ø²»ÊǼÓÔÚ¶ÀÁ¢µÄ·½·¨ÉÏ¡£Ò²¾ÍÊÇ˵£¬Èç¹ûÒ»¸öÏß³ÌÒªÖ´ÐÐÒ»¸ö¶ÔÏóµÄͬ²½·½·¨£¬Ëü±ØÐëÏȸøÄǸö¶ÔÏó¼ÓËø¡£
¡¡¡¡ÏÂÃæÏÔʾµÄ¾ÍÊÇÕâÖÖÇé¿öϵÄÒ»¸öÏ̵߳ĶÑÕ»¸ú×ÙµÄÀý×Ó£º
[code]"ExecuteThread: '24' for queue: 'DisplayExecuteQueue'" daemon prio=5
tid=0x5541b0 nid=0x3b waiting for monitor entry [49b7f000..49b7fc24]
at weblogic.cluster.replication.ReplicationManager.createSecondary
(ReplicationManager.java:908)
- waiting to lock (a java.lang.Object)
at weblogic.cluster.replication.ReplicationManager.updateSecondary
(ReplicationManager.java:715)[/code]
¡¡¡¡ÔÚÉÏÊö´úÂëƬ¶ÏÖУ¬ÄúÃÇ¿ÉÒÔ¿´µ½Õâ¸öÏß³ÌÒѾËøסÁËÒ»¸ö¶ÔÏó£¨6c408700£©£¬²¢ÇÒ»¹ÔڵȴýËøסÁíÒ»¸ö¶ÔÏó£¨6c4b9130£©¡£
¡¡¡¡JVMµÄÆäËû°æ±¾¿ÉÄܲ»»áÔÚ¶ÑÕ»¸ú×ÙÖиø³ö¶ÔÏóIDµÄ¼ÓËøÐÅÏ¢¡£ÕâÖÖÇé¿öÏ£¬ÎÒÃÇ¿ÉÒÔ´ÓÏ̵߳Ä״̬ÖÐÍƲâ³öÏß³ÌÕýÔڵȴý¸ø¶ÔÏó¼ÓËø¡£Í¬ÑùµÄ״̬ҲÐí»á±»³ÆΪMW¡£JRockit½«ÕâÖÖ״̬³ÆΪLOCKED¡£
¡¡¡¡ÏÖÔÚ£¬ÎÒÃÇÀ´¿´¿´¸÷ÖÖ²»Í¬Çé¿öϵÄһЩÏ̶߳ѣ¬²¢Í¨¹ý·ÖÎöËüÃÇÀ´Ñ°ÕÒÓ¦ÓóÌÐòÖеÄÎÊÌâ¡£
¡¡¡¡ËÀËøÓ¦ÓóÌÐòÖеÄÏ̶߳Ñ
¡¡¡¡ÔÚÇåµ¥2£¨Ö»ÏÔʾÁ˲¿·ÖÏ̶߳ѣ©ÖУ¬Äú¿ÉÒÔ¿´µ½JVMÒѾ·¢ÏÖÁËËÀËø²¢ÇÒÔÚÏ̶߳ÑÖиø³öÁ˸ÃÐÅÏ¢¡£ÏûÏ¢ÖкÜÇå³þµØ±íÃ÷ÁË¡°ExecuteThread: '47' for queue: 'default'¡±ÕýÔڵȴý¸ø±»"ExecuteThread: '57' for queue: 'default'"ËøסµÄ¶ÔÏó¼ÓËø¡££¨Õâ¸öÏ̶߳ÑÀ´×ÔÓÚWebLogic Server¡£ÕâЩÏ̶߳¼ÊÇWebLogic ServerµÄ¹¤×÷Ị̈߳¬ËüÃǸºÔð´¦Àí¿Í»§»úÇëÇó¡££©Í¬Ê±£¬Ö´ÐÐÏß³Ì47Ò²ËøסÁËÖ´ÐÐÏß³Ì57ÕýÔڵȴý¼ÓËøµÄÒ»¸ö¶ÔÏó¡£Õâ¾ÍÊÇËÀËø¡£ÔÚÕâÖÖ״̬Ï£¬ÕâÁ½¸öÏ̶߳¼ÎÞ·¨¼ÌÐøÔËÐУ¬ËüÃǶ¼ÔڵȴýÁíÒ»¸öÏß³ÌÊÍ·ÅËø¡£
¡¡¡¡ÔÚÇåµ¥2ÖУ¬Ö´ÐÐÏß³Ì1ÕýÔڵȴý¸øConnectionScavanger¶ÔÏó¼ÓËø£¬µ«ÊÇÕâ¸ö¶ÔÏóÄ¿Ç°ÒѾ±»Ïß³Ì47ËøסÁË£¬ÕýÈçÇ°ÃæÌáµ½¹ýµÄ£¬Ïß³Ì47ÓÖ±»Ïß³Ì57ËÀËøÁË¡£Òò´Ë£¬Ö´ÐÐÏß³Ì1Ò²ÎÞ·¨¼ÌÐøÔËÐÐÏÂÈ¥¡£Õâ×îÖÕ½«µ¼Ö³ÌÐòµÄ¹ÒÆð£¬ÒòΪ·þÎñÆ÷ÖеÄÆäËûÖ´ÐÐÏß³ÌËæºóÒ²»áÊÔͼ»ñµÃÄǸö±»Ö´ÐÐÏß³Ì47ºÍ57ËøסµÄ¶ÔÏóµÄËø¡£
¡¡¡¡ÓÐЩJVM²»»á¸ø³öËÀËøÐÅÏ¢¡£ËüÖ»»á¸ø³öÏ̶߳ѡ£Õâʱºò£¬ÎÒÃÇ¿ÉÒÔͨ¹ý²é¿´Ï̵߳Ä״̬ºÍ¶ÑÕ»¸ú×ٵóöͬÑùµÄ½áÂÛ¡£
¡¡¡¡ÉÏÊöÕâ¸öÇé¿öÖеÄÎÊÌâÔ´ÓÚWebLogicÖеÄÒ»¸öbug£¬ºóÀ´ÒѾÐÞ¸´ÁË¡£
¡¡¡¡ÆäËû¹ÒÆðµÄÇé¿ö
¡¡¡¡ÔÚһЩÇé¿öÏ£¬Äú¿ÉÄܻῴµ½´ó¶àÊýÏ̶߳¼ÊÇ¡°¿ÉÔËÐС±µÄ£¬µ«ÊÇ·þÎñÆ÷ÈÔÈ»»á¹ÒÆð£¬ÎÞ·¨ÏìÓ¦¿Í»§»úµÄÇëÇó¡£Èç¹ûijЩÏß³ÌÔÚ×öIO£¨ÊäÈëÊä³ö£©²Ù×÷£¬ËüÃÇ¿ÉÄÜ»áÔÚÖ´ÐÐread()·½·¨µÄʱºò±»×èÈûס£¬µ«ÊÇ״̬»¹ÊÇ¡°¿ÉÔËÐеġ±£¨Êý¾Ý¿â»òÆäËûÍøÂçÏìÓ¦µÄÇé¿ö¿ÉÄܺÜÔ㣩¡£Èç¹û³öÏÖÕâÖÖÇé¿ö£¬ÄúÐèÒª¼ì²éÊý¾Ý¿âºÍÍøÂçÊÇ·ñÕý³£¡£
¡¡¡¡Ò»¸ö¡°¿ÉÔËÐеġ±Ï̱߳»×èÈûס»¹¿ÉÄÜÊÇÓÉÏÂÁÐÔÒòÒýÆðµÄ£º
¡¡¡¡? ³ÌÐò´úÂëÖеÄÎÞÏÞÑ»·¡£Õâ»áµ¼ÖÂÑÏÖصÄCPUÕ¼Óá£
¡¡¡¡? JVMµÄÀ¬»øÊÕ¼¯¿ÉÄÜ»áÔËÐкܳ¤Ê±¼ä£¬Õ¼¾Ý´óÁ¿µÄCPUʱ¼ä¡£
¡¡¡¡? JVM½ø³Ì¿ÉÄÜ»áÓÃÍêÎļþÃèÊö·û¡£
¡¡¡¡Èç¹ûÓ¦ÓóÌÐòµÄ´úÂëµ÷ÓÃÁËwait()·½·¨»òsleep()·½·¨£¬Ïß³ÌÔÚÐÝÃßʱ¼äÄÚ²»»á¼ÌÐøÔËÐÐ----ÕâʱÏ̵߳Ä״̬¾ÍÊÇ¡°ÔÚ¼àÊÓÖеȴý¡±¡£³öÏÖÕâÖÖÇé¿ö£¬Ó¦¸Ã¼ì²é³ÌÐò´úÂë¡£
¡¡¡¡¶ÔÒ»¸ö¶ÔÏóµÄÕùÓÃÒ²»áÒýÆðϵͳÐÔÄܵÄϽµ£¬×îÖջᵼÖ³öÏÖÀàËÆÓÚ¹ÒÆðµÄ״̬¡£ÕâÖÖÇé¿öÏ£¬´ó¶àÊýÏ̵߳Ä״̬¾ÍÊÇ¡°µÈ´ý¼àÊÓʵÌ塱¡£ËùÒÔÓ¦¸Ã×Ðϸ¼ì²é³ÌÐò´úÂëÒÔ¼õÉÙ¶ÔÌض¨¶ÔÏóµÄÕùÓá£Ï߳̿ÉÄÜÔڵȴýÀ´×ÔÁíÒ»¸ö·þÎñÆ÷µÄÏìÓ¦£¬¶øÁíÒ»¸ö·þÎñÆ÷¿ÉÄÜÓÉÓÚÆäËûÔÒòÒ²´¦ÓÚ¹ÒÆð״̬£¬Ëü¾ÍÎÞ·¨¸øÕâ¸ö·þÎñÆ÷·¢ËÍÏìÓ¦ÐÅÏ¢¡£
¡¡¡¡ÔÚÉÏÊöËùÓÐÇé¿öÖУ¬Äú¶¼ÐèҪÿ¸ô¼¸ÃëÈ¡Ò»¸öÏ̶߳ѣ¨×ܹ²È¡¶à¸öÏ̶߳ѣ©£¬´Ó¶øÄܹ»±È½ÏËùÓÐÏ̶߳ÑÖеÄijһ¸öÏ̵߳Ä״̬£¬²¢ÇÒÄú¿ÉÒÔ¾ö¶¨Ï߳̿ÉÒÔ¼ÌÐøÔËÐл¹ÊǼÌÐøµÈ´ý¡£
¡¡¡¡JVM±ÀÀ£µÄÇé¿ö
¡¡¡¡JVMµÄ±ÀÀ£¿ÉÄÜ»áÓÉÏÂÁÐÔÒòÒýÆð£º
¡¡¡¡1£®JVM¿âÖеÄbug¡£
¡¡¡¡2£®Ó¦ÓóÌÐò´íÎóµØʹÓÃÁËJNI API¡£
¡¡¡¡3£®Ó¦ÓóÌÐò£¨ÔÉúÊý¾Ý¿âÇý¶¯µÈ£©ËùÓõÄÔÉúÄ£¿éÖдæÔÚbug¡£
¡¡¡¡Í¨³££¬µ±JVM±ÀÀ£µÄʱºò£¬Ëü»á¸ø³öÒýÆð±ÀÀ£µÄJavaÏ̵߳ĶÑÕ»¸ú×Ù¡£Ò»Ð©JVM»áÔÚÍ˳ö֮ǰ¸ø³öÒ»¸öÍêÕûµÄÏ̶߳ѣ¨ËùÓÐÏ̵߳ĶÑÕ»¸ú×Ù£©¡£ÎÒÃǹØÐÄÕâЩÏ̶߳ѵÄÄ¿µÄÖ÷ÒªÔÚÓÚÑ°ÕÒ±ÀÀ£Ê±ÕýÔÚÔËÐеÄÊÇÄĸöÏ̡߳£Õâ¸öÏ̳߳ÆΪ¡°µ±Ç°Ï̡߳±¡£Èç¹ûJVM¸ø³öÒ»¸öÍêÕûµÄÏ̶߳ѣ¬Ëü»á±ê³ö¡°µ±Ç°Ï̡߳±¡£Òò´Ë£¬Ò»°ãÀ´ËµÕÒ³öÒýÆð±ÀÀ£µÄÏ̻߳¹ÊDZȽÏÈÝÒ׵ġ£
¡¡¡¡×¢Ò⣬±ÀÀ£µÄÏ̶߳Ñͨ³£Êä³öµ½stdout»òstderr¡£JVM¿ÉÄÜÒ²»áÉú³ÉÒ»¸ö¶þ½øÖƸñʽµÄºËÐÄÎļþ¡£
¡¡¡¡±ÀÀ£Ï̶߳ѵÄÀý×Ó
¡¡¡¡Èç¹ûÄú¼ì²éÒ»ÏÂÇåµ¥3ÖеıÀÀ£Ï̶߳ѣ¬Äú¿ÉÒÔ¿´µ½ÒýÆð±ÀÀ£µÄÏ̵߳ĶÑÕ»¸ú×ÙÈçÏÂËùʾ£º
[code]at com.aaa.bbb.qqq.Direct.setString(Native Method)
at com.aaa.bbb.qqq.PreparedStatement.setString(PreparedStatement.java:51)
- locked (a com.aaa.bbb.qqq.PreparedStatement)[/code]
¡¡¡¡Current Java thread:
¡¡¡¡×îºóÒ»¸öÖ´Ðеķ½·¨£¨setString£©ÊÇÀà¡°com.aaa.bbb.qqq.Direct¡±ÖеÄÒ»¸ö¡°ÔÉú·½·¨¡±¡£Òò´Ë£¬ÎÒÃÇ¿ÉÒÔÍƲâ³ö±ÀÀ£ÕýÊÇÓÉsetString·½·¨µÄʵÏÖÖеÄÔÉú´úÂëÒýÆðµÄ¡£±ÀÀ£µÄÔÒòÒ²¿ÉÒÔ¹é½áΪʵÏÖJNI APIµÄJVM¿â´úÂëÓÐÎÊÌâ¡£
¡¡¡¡Äú»¹¿ÉÒÔ¿´µ½JVMÔÚ¶ÑÖиø³öÁËÏÂÃæµÄÐÅÏ¢£º
[code]Unexpected Signal : 11 occurred at PC=0x403AC9D1
Function=(null)+0x403AC9D1
Library=/opt/sunjdk/1.4.1_01-b01/jre/lib/i386/client/libjvm.so
# HotSpot Virtual Machine Error : 11
# Error ID : 4F530E43505002E6
# Please report this error at
# http://java.sun.com/cgi-bin/bugreport.cgi[/code]
¡¡¡¡ÕâÒâζ×ÅÒýÆð±ÀÀ££¨PC=0x403AC9D1£©µÄ´úÂëÊÇJVM¿âµÄÒ»²¿·Ö£º"/opt/sunjdk/1.4.1_01-b01/jre/lib/i386/client/libjvm.so"¡£µ«Õâ²¢²»±íʾJVMÒ»¶¨ÓÐbug¡£¾¡¹ÜÒýÆð±ÀÀ£µÄָʾÊÇÔÚJVM´úÂëÖУ¬µ«±ÀÀ£Ò²¿ÉÄÜÊÇÓÉÓÚÓ¦ÓóÌÐò´úÂ루ÕâÀïÊÇÖ¸ÔÉú·½·¨setStringµÄʵÏÖ£©µÄJNIµ÷ÓÃÒýÆðµÄ£¬Ó¦ÓóÌÐò´úÂë¿ÉÄÜ´«µÝÁËһЩ´íÎóµÄ±äÁ¿£¬´Ó¶øµ¼ÖÂJVMÄ£¿éµÄ±ÀÀ£¡£
¡¡¡¡Èç¹ûÔÚ¶ÑÖÐûÓС°µ±Ç°Ï̡߳±µÄÐÅÏ¢£¬ÄÇôÎÒÃǾÍÐèÒª·ÖÎöºËÐĶѡ£ÕâÒ»ÄÚÈݲ»ÔÚ±¾ÎĵÄÌÖÂÛ·¶Î§Ö®ÖС£