java¶àÏß³Ìѧϰ
¹ØÓÚ Java Concurrency
×Ô´ÓJavaµ®Éú֮ʱ£¬Java ¾ÍÖ§³Ö²¢ÐеĸÅÄ±ÈÈçÏ̺߳ÍËø»úÖÆ¡£Õâ¸ö½Ì³Ì°ïÖú¿ª·¢¶àÏß³ÌJava³ÌÐòÔ±Äܹ»Àí½âºËÐĵÄJava²¢ÐÐÀíÄîÒÔ¼°ÈçºÎʹÓÃËûÃÇ¡£ ÄÚÈÝÉæ¼°µ½JavaÓïÑÔÖеÄỊ̈߳¬ ÖØÁ·¼¶ÒÔ¼°ÇáÁ¿¼¶Í¬²½»úÖÆ ÒÔ¼°JavaSE 5 ÖеÄËø£¬Ô×ÓÁ¿ ²¢ÐÐÈÝÆ÷£¬Ï̵߳÷¶È ÒÔ¼°Ïß³ÌÖ´ÐÐÕß¡£ ¿ª·¢ÈËԱʹÓÃÕâЩ֪ʶÄܹ»¿ª·¢ºÃ²¢·¢Ḭ̈߳²È«µÄJava Ó¦ÓóÌÐò¡£
Java ²¢ÐеĸÅÄJava Concurrency Concepts£©
¸ÅÄî
ÃèÊö
Java ÄÚ´æÄ£ÐÍ
ÔÚJavaSE5 JSR133¹æ·¶ÖÐÏêϸ¶¨ÒåÁËJavaÄÚ´æÄ£ÐÍ Java Memory Model£¨JMM£©£¬¸ÃÄ£ÐͶ¨ÒåÁËÏà¹ØµÄ²Ù×÷ ±ÈÈç¶Á,д²Ù×÷£¬ÒÔ¼°ÔÚ¼àÊÓÆ÷ÉϵÄͬ²½¡£ ÕâЩ²Ù×÷°´ Happens-beforeµÄ˳Ðò¡£
Õâ¸ö¶¨Òå±£Ö¤ÁËÒ»¸öÏ߳̿ÉÒÔ¿´µ½ÁíÒ»¸öÏ̲߳Ù×÷µÄ½á¹û£¬Í¬Ê±±£Ö¤ÁËͬ²½µÄ³ÌÐò£¬ ÒÔ¼°ÈçºÎ¶¨ÒåÒ»¸ö²»±äµÄÊôÐÔ µÈµÈ¡£
¼àÊÓÆ÷
ÔÚJavaÖУ¬ÈκÎÒ»¸ö¶ÔÏó¶¼ÓÐÒ»¸ö¼àÊÓÆ÷£¬À´Åų⹲Ïí·ÃÎÊÁÙ½çÇøÓòµÄ´úÂë¡£ÕâЩÁÙ½çÇø¿ÉÒÔÊÇÒ»¸ö·½·¨ »òÕßÊÇÒ»¶Î´úÂë¿é£¬ÕâЩÁÙ½çÇøÓò×÷Ϊͬ²½¿é¡£Ïß³ÌÖ»ÓлñÈ¡¸Ã¼àÊÓÆ÷²ÅÄÜÖ´ÐÐͬ²½¿éµÄ´úÂë¡£µ±Ò»¸öÏ̵߳½´ïÕâ¿é´úÂëÊÇ£¬Ê×ÏȵȴýÀ´È·¶¨ÊÇ·ñÆäËûÏß³ÌÒѾÊÍ·ÅÕâ¸ö¼à¿ØÆ÷¡£¼à¿ØÆ÷³ýÁËÅų⹲Ïí·ÃÎÊ£¬»¹ÄÜͨ¹ýWait ºÍNotifyÀ´Ðµ÷Ïß³ÌÖ®¼äµÄ½»»¥¡£
Ô×ÓÊôÐÔ
³ýÁËDouble ºÍlongÀàÐÍ£¬ÆäËûµÄ¼òµ¥ÀàÐͶ¼ÊÇÔ×ÓÀàÐÍ¡£DoubleºÍlong ÀàÐ͵ÄÐÞ¸ÄÔÚJVM·ÖΪÁ½¸ö²»·â¡£ÎªÁ˱£Ö¤¸üй²ÏíµÄDoubleºÍLongÀàÐÍ£¬ÄãÓ¦¸Ã½«DoubleºÍlong µÄÊôÐÔ×÷ΪVolatile »òÕß½«Ð޸ĴúÂë·ÅÈëͬ²½¿éÖС£
¾ºÕùÇé¿ö
µ±Ðí¶àÏß³ÌÔÚһϵÁеķÃÎʹ²Ïí×ÊÔ´²Ù×÷ÖУ¬²¢ÇÒ½á¹û¸ú²Ù×÷˳±ãÓйØÏµµÄʱºò£¬¾Í·¢ÉúÁ˾ºÕùÇé¿ö¡£
Êý¾Ý¾ºÕù
Êý¾Ý¾ºÕùÉæ¼°µ½µ±Ðí¶àÏ̷߳ÃÎʲ»ÊÇnon-final»òÕßnon-volatile ²¢Ã»ÓкÏÊʵÄͬ²½»úÖÆµÄÊôÐÔʱ£¬JMM²»Äܱ£Ö¤²»Í¬²½µÄ·ÃÎʹ²ÏíµÄÊìϤ¡£Êý¾Ý¾ºÕùµ¼Ö±ȸöÔ¤ÖªµÄÐÐΪ¡£
×Ô¹«²¼
»¹Ã»ÓÐͨ¹ý¹¹Ôì·½·¨ÊµÀý»¯¶ÔÏó֮ǰ£¬°ÑÕâ¸ö¶ÔÏóµÄÒýÓù«²¼Ê±²»°²È«µÄ¡£
Ò»ÖÖÊÇͨ¹ý×¢²áÒ»¸ö¼àÌýÆ÷£¬µ±³õʼ»¯µÄʱºò»Øµ÷À´·¢²¼ÒýÓá£
ÁíÒ»ÖÖÊÇÔÚ¹¹Ôì·½·¨ÀïÃæÆô¶¯Ï̡߳£ÕâÁ½ÖÖ¶¼»áµ¼ÖÂÆäËûÏß³ÌÒýÓò¿·Ö³õʼ»¯µÄ¶ÔÏó¡£
FinalÊôÐÔ
FinalÊôÐÔ±ØÐëÏÔʾµÄ¸³Öµ£¬·ñÔò¾Í»áÓбàÒë´íÎó¡£Ò»µ©¸³Öµ£¬²»Äܱ»Ð޸ġ£½«Ò»¸ö¶ÔÏóÒýÓñê¼ÇΪFinalÖ»Äܱ£Ö¤¸ÃÒýÓò»»á±»Ð޸쬵«¸Ã¶ÔÏó¿ÉÒÔ±»Ð޸ġ£±ÈÈçÒ»¸öFinal ArrayIist²»ÄܸıäΪÁíÒ»¸öArrayList µ«Äã¿ÉÒÔÌí¼Ó»òÕßÐÞ¸ÄÕâ¸öListµÄ¶ÔÏó¡£ÔÚ¹¹Ôì·½·¨
Ïà¹ØÎĵµ£º
½ñÌìÊÇÏîÄ¿µÄµÚÈýÌìÁË£¬ºÍ×òÌìµÄÄÚÈݲ¶à£¬ËùÒÔ½ñÌìµÄ×ܽáûÓÐÎ§ÈÆÏîĿչ¿ª£¬ÎÒÖ®ËùÒÔ£¬ÒªÄóöCVS/SVNÀ´ËµµÄÔÒòÊÇÒòΪ°æ±¾¿ØÖÆÆ÷·Ç³£µÄÖØÒª£¬ÒòΪÒÔºóÎÒÃǽøÈ빫˾֮ºó£¬µÚÒ»´ÎÊÂÇé¾ÍÊǸæËßµ¥ÈË¿ª·¢µÄģʽ £¬´ó¼Ò¶¼ÖªµÀÔÚÆóÒµÀïÃæ£¬ÊDz»ÊÇÊÇÒ»¸öÈË¿ª·¢µÄ£¬ÊÇÐ×÷¿ª·¢¡£ËùÒÔ£¬×÷Ϊһ¸öÓпª·¢¾ÑéµÄͬ־¶¼ÖªµÀ£¬ÕâÁ ......
4£® ¸ßÐÔÄÜ
¡¡¡¡ËäÈ»javaÊǽâÊÍÖ´Ðе쬵«ËüÈÔÈ»¾ßÓзdz£¸ßµÄÐÔÄÜ£¬ÔÚÒ»Ð©ÌØ¶¨µÄCPUÉÏ£¬java×Ö½ÚÂë¿ÉÒÔ¿ìËÙµÄת»»³ÉΪ»úÆ÷Âë½øÐÐÖ´ÐС£¶øÇÒjava×Ö½ÚÂë¸ñʽµÄÉè¼Æ¾ÍÊÇÕë¶Ô»úÆ÷ÂëµÄת»»£¬Êµ¼Êת»»Ê±Ï൱¼ò±ã£¬×Ô¶¯µÄ¼Ä´æÆ÷·ÖÅäÓë±àÒëÆ÷¶Ô×Ö½ÚÂëµÄһЩÓÅ»¯¿Éʹ֮Éú³É¸ßÖÊÁ¿µÄ´úÂë¡£Ëæ×ÅjavaÐéÄâ»úµÄ¸Ä½øºÍ"¼´Ê±±àÒë"£¨just in ......
Java»ù´¡·½Ãæ:
1¡¢×÷ÓÃÓòpublic,private,protected,ÒÔ¼°²»Ð´Ê±µÄÇø±ð
´ð£ºÇø±ðÈçÏ£º
×÷ÓÃÓò µ±Ç°Àà ͬһpackage ×ÓËïÀà ÆäËûpackage
public& ......
³öÏÖÕâ¸ö´íÎó£¬ËÑË÷µ½1¡¢ÐÞ¸Äeclipse.ini£»2¡¢Ìí¼Ó»·¾³±äÁ¿JAVA_OPTS=-Xms64m -Xmx512m£¬3¡¢ÔÚrun configurations->program argumentsÔö¼ÓXms64m -Xmx512m£¬¾ùÎÞЧ¡£
×îºó½â¾ö°ì·¨£¬ÔÚÓëprogram argumentsһǽ֮¸ôµÄVM argumentsÖÐÌí¼ÓXms64m -Xmx512m¸ã¶¨¡£ ......
ÒÆÎ»ÔËËã·û
°üÀ¨£º
“>> ÓÒÒÆ”£»“<< ×óÒÆ”£»“>>> ÎÞ·ûºÅÓÒÒÆ”
Àý×Ó£º
-5>>3=-1
1111 1111 1111 1111 1111 1111 1111 1011
1111 1111 1111 1111 1111 1111 1111 1111
Æä½á¹ûÓë Math.floor((double)- ......