Java ÀíÂÛÓëʵ¼ù: ÕýȷʹÓà Volatile ±äÁ¿
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 ±äÁ¿ÌṩÀíÏëµÄḬ̈߳²È«£¬±ØÐëͬʱÂú×ãÏÂÃæÁ½¸öÌõ¼þ£º
¶Ô±äÁ¿µÄд²Ù×÷²»ÒÀÀµÓÚµ±Ç°Öµ¡£
¸Ã±äÁ¿Ã»Óаüº¬ÔÚ¾ßÓÐÆäËû±äÁ¿µÄ²»±äʽÖС£
ʵ¼ÊÉÏ£¬ÕâЩÌõ¼þ±í
Ïà¹ØÎĵµ£º
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--ÿҳÏÔʾ¼Ç¼ÌõÊý
@currentpage int output,--µÚ¼¸Ò³
@orderid nvarchar(50),--Ö÷¼üÅÅÐò
@sort int,--ÅÅÐò·½Ê½£¬1±íʾÉýÐò£¬0±íʾ½µÐòÅÅÁÐ
......
½ñÌìÔÙÂÛ̳¿´µ½ÁËÓÐÈËÎÊJAVAÃüÃû¹æ·¶£¬ÎÒ¾õµÃÕâ¸öÎÊÌâµÄÈ·ÐèÒª×¢ÖØÒ»ÏÂ
ÒòΪ¶ÔÓÚÒ»¸ö³ÌÐòÀ´Ëµ ³ÌÐòµÄ¸ñʽÊǷdz£ÖØÒª£¬Ãû×ÖÆð³ÉʲôÑù¿ÉÒÔ¿´³öÕâ¸öÈ˵ıà³ÌÄÜÁ¦£¬
Èç¹ûÒ»¸öÈ˵ijÌÐòдµÄ·Ç³£µÄÂÒ£¬Ãû×Öûһµã¹æ·¶µÄ»°»á¾õµÃ³ÌÐòºÜ"³ó"£¬Õâ»áÈöÁÕ߸ù±¾Ã»
ÐÄ˼ÍùÏ¿´
ÏÂÃæÕª×ÔÂÛÌ³Ò»ÍøÓѶÔÃüÃû¹æ·¶µÄ×ܽ᣺
1.°ü
ÓÉСР......
ʹÓà Java ¶Ô Linux ÏÂÎļþ±àÂë¸ñʽ½øÐÐÅúÁ¿×ª»»
²âÊÔʹÓÃ˵Ã÷£º
1¡£½« ×Ö·û¼¯±àÂë¸ñʽΪ GB2312 µÄÎļþ test0.java£¬test1.java£¬test2.java ·ÅÔÚ /home/defonds/tmp/test Ŀ¼Ï£¨test0.java£¬test1.java£¬test2.java ×÷Õß¿ÉÒÔ ......
Õª×Ô£ºjava JDK ʵÀý±¦µä
MD5¼´Message-Digest Algorithm 5£¨ÐÅÏ¢-ÕªÒªËã·¨ 5£©£¬ÓÃÓÚÈ·±£ÐÅÏ¢´«ÊäÍêÕûÒ»Ö¡£ÊǼÆËã»ú¹ã·ºÊ¹ÓõÄÔÓ´ÕËã·¨Ö®Ò»£¨ÓÖÒëÕªÒªËã·¨¡¢¹þÏ£Ëã·¨£©£¬Ö÷Á÷±à³ÌÓïÑÔÆÕ±éÒÑÓÐMD5ʵÏÖ¡£
¡¡¡¡ ½«Êý¾Ý£¨È纺×Ö£©ÔËËãΪÁíÒ»¹Ì¶¨³¤¶ÈÖµÊÇÔÓ´ÕËã·¨µÄ»ù´¡ÔÀ ......
java¶àÏß³ÌͨÐÅ ÊÕ²Ø
×ªÔØÇë×¢Ã÷:À´×Ôhttp://blog.csdn.net/M_ChangGong/ ×÷Õß:ÕÅÑà¹ã
java¶àÏß³ÌͨÐÅ£¬Ä£ÄâÉú²úÕß-Ïû·ÑÕß¹ØÏµ¡£
µÚ1ÖÖʵÏÖ£¨¸ÃʵÏÖ´æÔÚÎÊÌ⣩£¬¾ßÌå´úÂëÈçÏ£º
view plaincopy to clipboardprint?
package com.zhangyg.thread.mytest;
/**
* Ä£ÄâÉú²úÕß- ......