Java synchronizedÓ÷¨
synchronized¹Ø¼ü×ÖÔÚ¶àÏß³ÌÖеÄ×÷Óãº
Á½ÖÖÓ÷¨£ºsynchronized ·½·¨ºÍ synchronized ¿é¡£
1. synchronized ·½·¨£ºÍ¨¹ýÔÚ·½·¨ÉùÃ÷ÖмÓÈë synchronized¹Ø¼ü×ÖÀ´ÉùÃ÷ synchronized ·½·¨¡£ÈçÉÏÊöÀý×ÓËùÊö¡£
synchronized ·½·¨¿ØÖƶÔÀà³ÉÔ±±äÁ¿µÄ·ÃÎÊ£ºÃ¿¸öÀàʵÀý¶ÔÏó¶ÔÓ¦Ò»°ÑËø£¬Ã¿¸ö synchronized ·½·¨¶¼±ØÐë»ñµÃµ÷Óø÷½·¨µÄÀàʵÀý¶ÔÏóµÄËø·½ÄÜÖ´ÐУ¬·ñÔòËùÊôÏß³Ì×èÈû£¬·½·¨Ò»µ©Ö´ÐУ¬¾Í¶ÀÕ¼¸ÃËø£¬Ö±µ½´Ó¸Ã·½·¨·µ»ØÊ±²Å½«ËøÊÍ·Å£¬´Ëºó±»×èÈûµÄÏ̷߳½ÄÜ»ñµÃ¸ÃËø£¬ÖØÐ½øÈë¿ÉÖ´ÐÐ״̬¡£ÕâÖÖ»úÖÆÈ·±£ÁËͬһʱ¿Ì¶ÔÓÚÿһ¸öÀàʵÀý¶ÔÏ󣬯äËùÓÐÉùÃ÷Ϊ synchronized µÄ³ÉÔ±·½·¨ÖÐÖÁ¶àÖ»ÓÐÒ»¸ö´¦ÓÚ¿ÉÖ´ÐÐ״̬£¨ÒòΪÖÁ¶àÖ»ÓÐÒ»¸öÄܹ»»ñµÃ¸ÃÀàʵÀý¶ÔÏó¶ÔÓ¦µÄËø£©£¬´Ó¶øÓÐЧ±ÜÃâÁËÀà³ÉÔ±±äÁ¿µÄ·ÃÎʳåÍ»£¨Ö»ÒªËùÓпÉÄÜ·ÃÎÊÀà³ÉÔ±±äÁ¿µÄ·½·¨¾ù±»ÉùÃ÷Ϊ synchronized£©¡£
ÔÚ Java ÖУ¬²»¹âÊÇÀàʵÀý£¬Ã¿Ò»¸öÀàÒ²¶ÔÓ¦Ò»°ÑËø£¬ÕâÑùÎÒÃÇÒ²¿É½«ÀàµÄ¾²Ì¬³ÉÔ±º¯ÊýÉùÃ÷Ϊ synchronized £¬ÒÔ¿ØÖÆÆä¶ÔÀàµÄ¾²Ì¬³ÉÔ±±äÁ¿µÄ·ÃÎÊ¡£
synchronized ·½·¨µÄȱÏÝ£ºÈô½«Ò»¸ö´óµÄ·½·¨ÉùÃ÷Ϊsynchronized ½«»á´ó´óÓ°ÏìЧÂÊ£¬µäÐ͵أ¬Èô½«Ïß³ÌÀàµÄ·½·¨ run() ÉùÃ÷Ϊ synchronized £¬ÓÉÓÚÔÚÏ̵߳ÄÕû¸öÉúÃüÆÚÄÚËüÒ»Ö±ÔÚÔËÐУ¬Òò´Ë½«µ¼ÖÂËü¶Ô±¾ÀàÈκΠsynchronized ·½·¨µÄµ÷Óö¼ÓÀÔ¶²»»á³É¹¦¡£µ±È»ÎÒÃÇ¿ÉÒÔͨ¹ý½«·ÃÎÊÀà³ÉÔ±±äÁ¿µÄ´úÂë·Åµ½×¨Ãŵķ½·¨ÖУ¬½«ÆäÉùÃ÷Ϊ synchronized £¬²¢ÔÚÖ÷·½·¨Öе÷Óã¨ÈçÉÏÊöÀý×ÓÖеÄsale()·½·¨£¬ÔÚrun()·½·¨ÖÐÀ´µ÷ÓÃsale()·½·¨£©À´½â¾öÕâÒ»ÎÊÌ⣬µ«ÊÇ Java ΪÎÒÃÇÌṩÁ˸üºÃµÄ½â¾ö°ì·¨£¬ÄǾÍÊÇ synchronized ¿é¡£
2. synchronized ¿é£ºÍ¨¹ý synchronized¹Ø¼ü×ÖÀ´ÉùÃ÷synchronized ¿é¡£Óï·¨ÈçÏ£º
synchronized(syncObject) {
//ÔÊÐí·ÃÎÊ¿ØÖƵĴúÂë
}
¡¡¡¡synchronized ¿éÊÇÕâÑùÒ»¸ö´úÂë¿é£¬ÆäÖеĴúÂë±ØÐë»ñµÃ¶ÔÏó syncObject £¨ÈçǰËùÊö£¬¿ÉÒÔÊÇÀàʵÀý»òÀ࣬ÉÏÊöÀý×ÓÖÐÎÒÃǶ¨ÒåÁËÒ»¸öStringÀàµÄ¶ÔÏ󣩵ÄËø·½ÄÜÖ´ÐУ¬¾ßÌå»úÖÆÍ¬Ç°ËùÊö¡£ÓÉÓÚ¿ÉÒÔÕë¶ÔÈÎÒâ´úÂë¿é£¬ÇÒ¿ÉÈÎÒâÖ¸¶¨ÉÏËøµÄ¶ÔÏ󣬹ÊÁé»îÐԽϸߡ£
¶Ôsynchronized(this)µÄһЩÀí½â
Ò»¡¢µ±Á½¸ö²¢·¢Ï̷߳ÃÎÊͬһ¸ö¶ÔÏóobjectÖеÄÕâ¸ösynchronized(this)ͬ²½´úÂë¿éʱ£¬Ò»¸öʱ¼äÄÚÖ»ÄÜÓÐÒ»¸öÏ̵߳õ½Ö´ÐС£ÁíÒ»¸öÏ̱߳ØÐëµÈ´ýµ±Ç°Ïß³ÌÖ´ÐÐÍêÕâ¸ö´úÂë¿éÒÔºó²ÅÄÜÖ´ÐиôúÂë¿é¡£
¶þ¡¢È»¶ø£¬µ±Ò»¸öÏ̷߳ÃÎÊobjectµÄÒ»¸ösynchronized(this)ͬ²½´úÂë¿éʱ£¬ÁíÒ»¸öÏß³ÌÈÔÈ»¿ÉÒÔ·ÃÎʸÃobjectÖеķÇ
Ïà¹ØÎĵµ£º
ÀàµÄ³õʼ»¯ºÍ¶ÔÏó³õʼ»¯ÊÇ JVM ¹ÜÀíµÄÀàÐÍÉúÃüÖÜÆÚÖзdz£ÖØÒªµÄÁ½¸ö»·½Ú£¬Google ÁËÒ»±éÍøÂ磬ÓйØÀà×°ÔØ»úÖÆµÄÎÄÕµ¹ÊDz»ÉÙ£¬È»¶øÀà³õʼ»¯ºÍ¶ÔÏó³õʼ»¯µÄÎÄÕ²¢²»¶à£¬ÌرðÊÇ´Ó×Ö½ÚÂëºÍ JVM ²ã´ÎÀ´·ÖÎöµÄÎÄÕ¸üÊÇÏÊÓÐËù¼û¡£
±¾ÎÄÖ÷Òª¶ÔÀàºÍ¶ÔÏó³õʼ»¯È«¹ý³Ì½øÐзÖÎö£¬Í¨¹ýÒ»¸öʵ¼ÊÎÊÌâÒýÈ룬½«Ô´´úÂëת»»³É JVM ×Ö½ÚÂëºó£¬ ......
µÚÒ»£¬Ì¸Ì¸final, finally, finalizeµÄÇø±ð¡£
×î³£±»Îʵ½¡£
µÚ¶þ£¬Anonymous Inner Class (ÄäÃûÄÚ²¿Àà) ÊÇ·ñ¿ÉÒÔextends(¼Ì³Ð)ÆäËüÀ࣬ÊÇ·ñ¿ÉÒÔimplements(ʵÏÖ)interface(½Ó¿Ú)?
µÚÈý£¬Static Nested Class ºÍ Inner ClassµÄ²»Í¬£¬ËµµÃÔ½¶àÔ½ºÃ(ÃæÊÔÌâÓеĺÜÁýͳ)¡£
µÚËÄ£¬&ºÍ&&µÄÇø±ð¡£
Õâ¸öÎʵúÜÉÙ¡£
......
´ó¼ÒºÃ,ÎÒÊÇ´«ÖDz¥¿Í2009Äê12ÔÂ20ºÅ³å´Ì°àѧԱ.ÔÚ½ÓÏÂÀ´µÄ¼¸¸öÔÂÀïÎÒ½«ÕæÊµµÄ¼Í¼ÔÚ´«ÖDz¥¿ÍµÄѧϰ¾Àú.Ò»ÊǶÔ×Ô¼ºÑ§Ï°µÄ×ܽáºÍ¼Í¼;¶þÊÇÕæÊµµÄ·´Ó¦ÔÚ´«ÖDz¥¿Íѧϰ¾ÀúºÍ¹ý³Ì.
ÏȽéÉÜÒ»ÏÂÎÒ×Ô¼º´Ó±ÏÒµµ½´«ÖDz¥¿Í֮ǰÔÚ±±¾©µÄ¾Àú.09Äê±¾¿ ......
31¡¢EJB°üÀ¨£¨SessionBean,EntityBean£©Ëµ³öËûÃǵÄÉúÃüÖÜÆÚ£¬¼°ÈçºÎ¹ÜÀíÊÂÎñµÄ£¿
SessionBean£ºStateless Session Bean µÄÉúÃüÖÜÆÚÊÇÓÉÈÝÆ÷¾ö¶¨µÄ£¬µ±¿Í»§»ú·¢³öÇëÇóÒª½¨Á¢Ò»¸öBeanµÄʵÀýʱ£¬EJBÈÝÆ÷²»Ò»¶¨Òª´´½¨Ò»¸öеÄBeanµÄʵÀý¹©¿Í»§»úµ÷Ó㬶øÊÇËæ±ãÕÒÒ»¸öÏÖÓеÄʵÀýÌṩ¸ø¿Í»§»ú¡£µ±¿Í»§»úµÚÒ»´Îµ÷ÓÃÒ»¸öStateful S ......
ºÜ¶àÅóÓÑÔÚÉîÈëµÄ½Ó´¥ JAVA ÓïÑÔºó¾Í»á·¢ÏÖÕâÑùÁ½¸ö´Ê£º·´Éä (Reflection) ºÍÄÚÊ¡ (Introspector) £¬¾³£¸ã²»Çå³þÕâµ½µ×ÊÇÔõô»ØÊ£¬ÔÚʲô³¡ºÏÏÂÓ¦ÓÃÒÔ¼°ÈçºÎʹÓ㿽ñÌì°ÑÕâ¶þÕß·ÅÔÚÒ»Æð½éÉÜ£¬ÒòΪËüÃǶþÕßÊÇÏศÏà³ÉµÄ¡£
·´Éä
<o:p> </o:p>
Ïà¶Ô¶øÑÔ£¬·´Éä±ÈÄÚÊ¡¸üÈÝÒ×Àí½âÒ»µã¡£ÓÃÒ»¾ä±È½Ï°×µÄ»°À´¸ÅÀ ......