Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

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 ±äÁ¿ÌṩÀíÏëµÄḬ̈߳²È«£¬±ØÐëͬʱÂú×ãÏÂÃ


Ïà¹ØÎĵµ£º

Java°²×°ºóJDK/binĿ¼ÏµÄexeÎļþµÄÓÃ;

javac£ºJava±àÒëÆ÷£¬½«JavaÔ´´úÂë»»³É×Ö½Ú´ú
java£ºJava½âÊÍÆ÷£¬Ö±½Ó´ÓÀàÎļþÖ´ÐÐJavaÓ¦ÓóÌÐò´úÂë
appletviewer(С³ÌÐòä¯ÀÀÆ÷)£ºÒ»ÖÖÖ´ÐÐHTMLÎļþÉϵÄJavaС³ÌÐòÀàµÄJavaä¯ÀÀÆ÷
javadoc£º¸ù¾ÝJavaÔ´´úÂë¼°Æä˵Ã÷Óï¾äÉú³ÉµÄHTMLÎĵµ
jdb£ºJavaµ÷ÊÔÆ÷£¬¿ÉÒÔÖðÐеØÖ´ÐгÌÐò¡¢ÉèÖöϵãºÍ¼ì²é±äÁ¿
javah£º²úÉú¿ÉÒÔµ÷Ó ......

JAVAÖÐÈ¡µÃµÄʱ¼ä²»ÊDZ¾µØʱ¼äµÄÎÊÌâ

     javaÖÐȡʱ¼äÊǸù¾ÝjreÖеÄÒ»¸öÎļþÀ´¾ö¶¨µÄ£¬Ä¬ÈϵÄÊǸñÁÖÍþÖÎʱ¼ä£¬ÓÉÓÚʱÇøµÄÔ­Òò¿ÉÄÜÈ¡µ½µÄʱ¼ä¸úµ±Ç°Ê±¼ä²»Í¬£¬½¨Òé²ÉÓÃÏÂÊö·½·¨ÊÔÊÔ£º  ½«jre1.5Ŀ¼ÏµÄ\lib\ziµÄGMTÎļþbak±¸·Ýһϣ¬½«AsiaµÄShanghai ÖØÃüÃûΪGMT ¸´ÖƵ½\lib\ziĿ¼Ï¡£ÓÉÓÚһ̨»úÆ÷ÉÏ¿ÉÄÜ×°¼¸¸öJRE£¬±ÈÈ ......

Java Êý¾ÝÁ÷2(PipedInputStream,PipedOutputStream)

Java Êý¾ÝÁ÷2(PipedInputStream,PipedOutputStream...)
2007-08-18 17:30
×Ö½ÚÁ÷µÄ¸ß¼¶Ó¦ÓÃ
?       ¹ÜµÀÁ÷
¹ÜµÀÓÃÀ´°ÑÒ»¸ö³ÌÐò¡¢Ï̺߳ʹúÂë¿éµÄÊä³öÁ¬½Óµ½ÁíÒ»¸ö³ÌÐò¡¢Ï̺߳ʹúÂë¿éµÄÊäÈë¡£java.ioÖÐÌṩÁËÀàPipedInputStreamºÍPipedOutputStream×÷Ϊ¹ÜµÀµÄÊäÈë/Êä³öÁ÷
¹ÜµÀÊäÈëÁ÷×÷ ......

JAVAϵͳºÍDOMINOͨ¹ýLDAP¼¯³É·½

LDAPÊDZê×¼ÇáÁ¿Ä¿Â¼·ÃÎÊЭÒé(Lightweight Directory Access Protocol)£¬Í¨¹ýLDAP£¬Äã¿ÉÒÔ·ÃÎÊĿ¼ÖеÄÓû§ÐÅÏ¢£¬½øÐÐÓû§ÑéÖ¤¡£DominoR5/6Ö§³Ö±ê×¼µÄLDAP v3Ŀ¼·þÎñ¡£±¾ÎÄͨ¹ýÃèÊöʹÓÃJNDI·ÃÎÊDominoĿ¼µÄ¹ý³Ì£¬Îª´ó¼Ò½éÉÜÈçºÎ³ä·ÖÀûÓûú¹¹ÖÐÒÑÓеÄDominoĿ¼×ÊÔ´¡£±¾ÎÄËùÊöµÄ·½·¨Ò²ÊÊÓÃÓÚÆäËûÖ§³ÖLDAP v3µÄĿ¼·þÎñÆ÷¡£ ......

¶¯Ì¬Ö´ÐÐJava½Å±¾

1 ±³¾°
ÔÚÎÒÃǵÄÏîÄ¿ÖУ¬ÓÐʱºòÔÚÐèÒªÔËÐÐʱ»ñÈ¡Ò»¶Î½Å±¾²¢Ö´ÐÐÆäÂß¼­ÒÔÁé»îµØʵÏÖÒµÎñÐèÇó¡£ÓÐÈ˵ĵÚÒ»Ïë·¨¾ÍÊǽű¾ÓïÑÔ£¬ÎÒÃǵ±È»¿ÉÒÔÔÚ³ÌÐòÖÐÄÚǶһ¸öPython½âÊÍÆ÷£¬È»ºóÔÚÐèÒªÁé»î±ä¶¯µÄµØ·½Ê¹ÓÃPython½Å±¾ÊµÏÖÎÒÃǵÄÂß¼­¡£µ«ÊÇÕâÑù×öÌ«“ÖØÁ¿¼¶”ÁË£¬¿öÇÒÉíΪһ¸öJava³ÌÐòÔ±£¬Äã²»Ò»¶¨¶®µÃPythonµÄÓï·¨£¬ÓÖ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ