Java ÀíÂÛÓëʵ¼ù: ÕýȷʹÓà Volatile ±äÁ¿
ת£ºhttp://www.ibm.com/developerworks/cn/java/j-jtp06197.html
2007 Äê 7 ÔÂ 05 ÈÕ
Java™ ÓïÑÔ°üº¬Á½ÖÖÄÚÔÚµÄͬ²½»úÖÆ£ºÍ¬²½¿é£¨»ò·½·¨£©ºÍ volatile ±äÁ¿¡£ÕâÁ½ÖÖ»úÖÆµÄÌá³ö¶¼ÊÇΪÁËʵÏÖ´úÂëÏ̵߳ݲȫÐÔ¡£ÆäÖÐ Volatile ±äÁ¿µÄͬ²½ÐԽϲµ«ÓÐʱËü¸ü¼òµ¥²¢ÇÒ¿ªÏú¸üµÍ£©£¬¶øÇÒÆäʹÓÃÒ²¸üÈÝÒ׳ö´í¡£ÔÚÕâÆÚµÄ Java ÀíÂÛÓëʵ¼ù ÖУ¬Brian Goetz ½«½éÉܼ¸ÖÖÕýȷʹÓÃ
volatile ±äÁ¿µÄģʽ£¬²¢Õë¶ÔÆäÊÊÓÃÐÔÏÞÖÆÌá³öһЩ½¨Òé¡£
Java ÓïÑÔÖÐµÄ volatile ±äÁ¿¿ÉÒÔ±»¿´×÷ÊÇÒ»ÖÖ “³Ì¶È½ÏÇáµÄ synchronized”£»Óë synchronized ¿éÏà±È£¬volatile ±äÁ¿ËùÐèµÄ±àÂë½ÏÉÙ£¬²¢ÇÒÔËÐÐʱ¿ªÏúÒ²½ÏÉÙ£¬µ«ÊÇËüËùÄÜʵÏֵŦÄÜÒ²½öÊÇ synchronized µÄÒ»²¿·Ö¡£±¾ÎĽéÉÜÁ˼¸ÖÖÓÐЧʹÓà volatile ±äÁ¿µÄģʽ£¬²¢Ç¿µ÷Á˼¸ÖÖ²»ÊʺÏʹÓà volatile ±äÁ¿µÄÇéÐΡ£
ËøÌṩÁËÁ½ÖÖÖ÷ÒªÌØÐÔ£º»¥³â£¨mutual exclusion£© ºÍ¿É¼ûÐÔ£¨visibility£©¡£»¥³â¼´Ò»´ÎÖ»ÔÊÐíÒ»¸öÏ̳߳ÖÓÐij¸öÌØ¶¨µÄËø£¬Òò´Ë¿ÉʹÓøÃÌØÐÔʵÏÖ¶Ô¹²ÏíÊý¾ÝµÄе÷·ÃÎÊÐÒ飬ÕâÑù£¬Ò»´Î¾ÍÖ»ÓÐÒ»¸öÏß³ÌÄܹ»Ê¹Óøù²ÏíÊý¾Ý¡£¿É¼ûÐÔÒª¸ü¼Ó¸´ÔÓһЩ£¬Ëü±ØÐëÈ·±£ÊÍ·ÅËøÖ®Ç°¶Ô¹²ÏíÊý¾Ý×ö³öµÄ¸ü¸Ä¶ÔÓÚËæºó»ñµÃ¸ÃËøµÄÁíÒ»¸öÏß³ÌÊǿɼûµÄ —— Èç¹ûûÓÐͬ²½»úÖÆÌṩµÄÕâÖֿɼûÐÔ±£Ö¤£¬Ï߳̿´µ½µÄ¹²Ïí±äÁ¿¿ÉÄÜÊÇÐÞ¸ÄǰµÄÖµ»ò²»Ò»ÖµÄÖµ£¬Õ⽫Òý·¢Ðí¶àÑÏÖØÎÊÌâ¡£
Volatile ±äÁ¿
Volatile ±äÁ¿¾ßÓÐ synchronized µÄ¿É¼ûÐÔÌØÐÔ£¬µ«ÊDz»¾ß±¸Ô×ÓÌØÐÔ¡£Õâ¾ÍÊÇ˵Ïß³ÌÄܹ»×Ô¶¯·¢ÏÖ volatile ±äÁ¿µÄ×îÐÂÖµ¡£Volatile ±äÁ¿¿ÉÓÃÓÚÌṩḬ̈߳²È«£¬µ«ÊÇÖ»ÄÜÓ¦ÓÃÓڷdz£ÓÐÏÞµÄÒ»×éÓÃÀý£º¶à¸ö±äÁ¿Ö®¼ä»òÕßij¸ö±äÁ¿µÄµ±Ç°ÖµÓëÐ޸ĺóÖµÖ®¼äûÓÐÔ¼Êø¡£Òò´Ë£¬µ¥¶ÀʹÓà volatile »¹²»×ãÒÔʵÏÖ¼ÆÊýÆ÷¡¢»¥³âËø»òÈκξßÓÐÓë¶à¸ö±äÁ¿Ïà¹ØµÄ²»±äʽ£¨Invariants£©µÄÀࣨÀýÈç “start <=end”£©¡£
³öÓÚ¼òÒ×ÐÔ»ò¿ÉÉìËõÐԵĿ¼ÂÇ£¬Äú¿ÉÄÜÇãÏòÓÚʹÓà volatile ±äÁ¿¶ø²»ÊÇËø¡£µ±Ê¹Óà volatile ±äÁ¿¶ø·ÇËøÊ±£¬Ä³Ð©Ï°¹ßÓ÷¨£¨idiom£©¸ü¼ÓÒ×ÓÚ±àÂëºÍÔĶÁ¡£´ËÍ⣬volatile ±äÁ¿²»»áÏñËøÄÇÑùÔì³ÉÏß³Ì×èÈû£¬Òò´ËÒ²ºÜÉÙÔì³É¿ÉÉìËõÐÔÎÊÌâ¡£ÔÚijЩÇé¿öÏ£¬Èç¹û¶Á²Ù×÷Ô¶Ô¶´óÓÚд²Ù×÷£¬volatile ±äÁ¿»¹¿ÉÒÔÌṩÓÅÓÚËøµÄÐÔÄÜÓÅÊÆ¡£
ÕýȷʹÓà volatile ±äÁ¿µÄÌõ¼þ
ÄúÖ»ÄÜÔÚÓÐÏÞµÄһЩÇéÐÎÏÂʹÓà volatile ±äÁ¿Ìæ´úËø¡£ÒªÊ¹ volatile ±äÁ¿ÌṩÀíÏëµÄḬ̈߳²È«£¬±ØÐëͬʱÂú×ãÏÂÃ
Ïà¹ØÎĵµ£º
Ò»£º×¼±¸ www.savarese.org download
1. rocksaw-1.0.0-src.tar.gz
2. vserv-tcpip-0.9.2-src.tar.gz
¶þ£º±àÒëÔ´ÎļþµÃµ½jar°ü ʹÓÃAnt
1. build vserv-tcpip-0.9.2-src
ÔÚvserv-tcpip-0.9.2Ŀ¼ÏÂÃæ½¨Ò»¸ötestsĿ¼£¬È»ºóÔÚcmd´°¿ÚϽøÈë ......
http://hi.baidu.com/zhanghaooy/blog/item/52c3c246b636a7036b63e558.html
http://hi.baidu.com/hxtang/blog/item/2bb33c8265cd0aba6d81196d.html
http://hi.baidu.com/hxtang/blog/item/8221f10f8361112f6159f368.html
http://hi.baidu.com/zhanghaooy/blog/item/73a76c0fb9d2e2e7ab645758.html ......
LDAPÊDZê×¼ÇáÁ¿Ä¿Â¼·ÃÎÊÐÒé(Lightweight Directory Access Protocol)£¬Í¨¹ýLDAP£¬Äã¿ÉÒÔ·ÃÎÊĿ¼ÖеÄÓû§ÐÅÏ¢£¬½øÐÐÓû§ÑéÖ¤¡£DominoR5/6Ö§³Ö±ê×¼µÄLDAP v3Ŀ¼·þÎñ¡£±¾ÎÄͨ¹ýÃèÊöʹÓÃJNDI·ÃÎÊDominoĿ¼µÄ¹ý³Ì£¬Îª´ó¼Ò½éÉÜÈçºÎ³ä·ÖÀûÓûú¹¹ÖÐÒÑÓеÄDominoĿ¼×ÊÔ´¡£±¾ÎÄËùÊöµÄ·½·¨Ò²ÊÊÓÃÓÚÆäËûÖ§³ÖLDAP v3µÄĿ¼·þÎñÆ÷¡£
......
8.8 thisºÍsuper
ÏÂÃæÔÙÀ´½éÉÜÒ»ÏÂthisºÍsuper¹Ø¼ü×ÖµÄʹÓá£ÔÚ³ÌÐòÖÐͨ¹ýʹÓÃthisºÍsuper¹Ø¼ü×Ö£¬¿ÉÒÔʵÏÖ¶ÔÓÚÀàÄÚ²¿ºÜ¶àÄÚÈÝ·½±ãµÄÒýÓã¬Ò²ÓÐÖúÓÚÀí½âÃæÏò¶ÔÏóµÄʵÏÖÔÀí£¬¸ü·½±ãµÄÀí½âÃæÏò¶ÔÏó¼¼ÊõµÄÄÚ²¿ÊµÏÖ¡£
8.8.1 this¹Ø¼ü×Ö
&n ......
³éÏóÀàÍùÍùÓÃÀ´±íÕ÷ÎÒÃÇÔÚ¶ÔÎÊÌâÁìÓò½øÐзÖÎö¡¢ Éè¼ÆÖеóöµÄ³éÏó¸ÅÄÊǶÔһϵÁп´ÉÏÈ¥²»Í¬£¬µ«ÊDZ¾ÖÊÉÏÏàͬµÄ¾ßÌå¸ÅÄîµÄ³éÏó£¬ÎÒÃDz»ÄܰÑËüÃÇʵÀý»¯£¨Äò»³öÒ»¸ö¾ßÌåµÄ¶«Î÷£©ËùÒÔ³ÆÖ®Îª³éÏó¡£±ÈÈ磺ÎÒÃÇÒªÃèÊö“Ë®¹û”£¬Ëü¾ÍÊÇÒ»¸ö³éÏó£¬ËüÓÐÖÊÁ¿¡¢Ìå»ýµÈһЩ¹²ÐÔ£¨Ë®¹ûÓÐÖÊÁ¿£©£¬µ«ÓÖȱ·¦ÌØÐÔ£¨Æ»¹û¡¢ ......