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

java volatile ¹Ø¼ü×Ö

volatile¹Ø¼ü×ÖÓÐʲôÓã¿
¿ÖűȽÏÒ»ÏÂvolatileºÍsynchronizedµÄ²»Í¬ÊÇ×îÈÝÒ×½âÊÍÇå³þµÄ¡£volatileÊDZäÁ¿ÐÞÊηû£¬¶øsynchronizedÔò×÷ÓÃÓÚÒ»¶Î´úÂë»ò·½·¨£»¿´ÈçÏÂÈý¾äget´úÂ룺
int i1;                          int geti1() {return i1;}
volatile int i2;              int geti2() {return i2;}
int i3; synchronized     int geti3() {return i3;}
geti1()µÃµ½´æ´¢ÔÚµ±Ç°Ïß³ÌÖÐi1µÄÊýÖµ¡£¶à¸öÏß³ÌÓжà¸öi1±äÁ¿¿½±´£¬¶øÇÒÕâЩi1Ö®¼ä¿ÉÒÔ»¥²»Ïàͬ¡£»»¾ä»°Ëµ£¬ÁíÒ»¸öÏ߳̿ÉÄÜÒѾ­¸Ä±äÁËËüÏß³ÌÄÚµÄi1Öµ£¬¶øÕâ¸öÖµ¿ÉÒԺ͵±Ç°Ïß³ÌÖеÄi1Öµ²»Ïàͬ¡£ÊÂʵÉÏ£¬JavaÓиö˼Ïë½Ð¡°Ö÷¡±ÄÚ´æÇøÓò£¬ÕâÀï´æ·ÅÁ˱äÁ¿Ä¿Ç°µÄ¡°×¼È·Öµ¡±¡£Ã¿¸öÏ߳̿ÉÒÔÓÐËü×Ô¼ºµÄ±äÁ¿¿½±´£¬¶øÕâ¸ö±äÁ¿¿½±´Öµ¿ÉÒԺ͡°Ö÷¡±ÄÚ´æÇøÓòÀï´æ·ÅµÄ²»Í¬¡£Òò´Ëʵ¼ÊÉÏ´æÔÚÒ»ÖÖ¿ÉÄÜ£º¡°Ö÷¡±ÄÚ´æÇøÓòÀïµÄi1ÖµÊÇ1£¬Ïß³Ì1ÀïµÄi1ÖµÊÇ2£¬Ïß³Ì2ÀïµÄi1ÖµÊÇ3——ÕâÔÚÏß³Ì1ºÍÏß³Ì2¶¼¸Ä±äÁËËüÃǸ÷×ÔµÄi1Öµ£¬¶øÇÒÕâ¸ö¸Ä±ä»¹Ã»À´µÃ¼°´«µÝ¸ø¡°Ö÷¡±ÄÚ´æÇøÓò»òÆäËûÏß³Ìʱ¾Í»á·¢Éú¡£
¶øgeti2()µÃµ½µÄÊÇ¡°Ö÷¡±ÄÚ´æÇøÓòµÄi2ÊýÖµ¡£ÓÃvolatileÐÞÊκóµÄ±äÁ¿²»ÔÊÐíÓв»Í¬ÓÚ¡°Ö÷¡±ÄÚ´æÇøÓòµÄ±äÁ¿¿½±´¡£»»¾ä»°Ëµ£¬Ò»¸ö±äÁ¿¾­volatileÐÞÊκóÔÚËùÓÐÏß³ÌÖбØÐëÊÇͬ²½µÄ£»ÈκÎÏß³ÌÖиıäÁËËüµÄÖµ£¬ËùÓÐÆäËûÏß³ÌÁ¢¼´»ñÈ¡µ½ÁËÏàͬµÄÖµ¡£ÀíËùµ±È»µÄ£¬volatileÐÞÊεıäÁ¿´æÈ¡Ê±±ÈÒ»°ã±äÁ¿ÏûºÄµÄ×ÊÔ´Òª¶àÒ»µã£¬ÒòΪÏß³ÌÓÐËü×Ô¼ºµÄ±äÁ¿¿½±´¸üΪ¸ßЧ¡£
¼ÈÈ»volatile¹Ø¼ü×ÖÒѾ­ÊµÏÖÁËÏ̼߳äÊý¾Ýͬ²½£¬ÓÖÒªsynchronized¸ÉÊ²Ã´ÄØ£¿ºÇºÇ£¬ËüÃÇÖ®¼äÓÐÁ½µã²»Í¬¡£Ê×ÏÈ£¬synchronized»ñµÃ²¢ÊͷżàÊÓÆ÷——Èç¹ûÁ½¸öÏß³ÌʹÓÃÁËͬһ¸ö¶ÔÏóËø£¬¼àÊÓÆ÷ÄÜÇ¿ÖÆ±£Ö¤´úÂë¿éͬʱֻ±»Ò»¸öÏß³ÌËùÖ´ÐЗ—ÕâÊÇÖÚËùÖÜÖªµÄÊÂʵ¡£µ«ÊÇ£¬synchronizedҲͬ²½Äڴ棺ÊÂʵÉÏ£¬synchronizedÔÚ¡°Ö÷¡±ÄÚ´æÇøÓòͬ²½Õû¸öÏ̵߳ÄÄÚ´æ¡£Òò´Ë£¬Ö´ÐÐgeti3()·½·¨×öÁËÈçϼ¸²½£º
1. Ïß³ÌÇëÇó»ñµÃ¼àÊÓthis¶ÔÏóµÄ¶ÔÏóËø£¨¼ÙÉèδ±»Ëø£¬·ñÔòÏ̵߳ȴýÖ±µ½ËøÊÍ·Å£©
2. Ïß³ÌÄÚ´æµÄÊý¾Ý±»Ïû³ý£¬´Ó¡°Ö÷¡±ÄÚ´æÇøÓòÖжÁÈ루JavaÐéÄâ»úÄÜÓÅ»¯´Ë²½¡£¡£¡£[ºóÃæµÄ²»ÖªµÀÔõô±í´ï,º¹]£©


Ïà¹ØÎĵµ£º

Java ÈÕÆÚ¼Ó減

public static void main(String[] args) {
   String DATE_FORMAT = "yyyy-MM-dd";
   java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat(
     DATE_FORMAT);
   Calendar c1 = Calendar.getInstance();
   c1.set(1999, 0, 14);
&n ......

ËĸöÓꦵÄJava±àÂëϰ¹ß

³ÌÐòÖеıàÂë·ç¸ñÈÃÎÒÃǵıà³Ì¹¤×÷±äµÃÇáËÉ£¬ÌرðÊdzÌÐòά»¤Ô±£¬ËûÃÇÒª¾­³£ÔĶÁÆäËûÈ˱àдµÄ³ÌÐò±àÂ룬ÕâÒ»µãÓÈÆäÍ»³ö¡£±àÂë¹æ·¶´Ó¸ù±¾ÉϽâ¾öÁ˳ÌÐòά»¤Ô±µÄÄÑÌ⣻¹æ·¶µÄ±àÂëÔĶÁºÍÀí½âÆðÀ´¸üÈÝÒ×£¬Ò²¿ÉÒÔ¿ìËٵIJ»·ÑÁ¦ÆøµÄ½è¼ø±ðÈ˵ıàÂë¡£¶Ô½«À´Î¬»¤Äã±àÂëµÄÈËÀ´Ëµ£¬ÄãµÄ±àÂëÔ½ÓÅ»¯£¬ËûÃǾÍԽϲ»¶ÄãµÄ±àÂ룬Àí½âÆðÀ´Ò²¾ÍÔ½ ......

×ܽἸÖÖJava×Ö·û´®·´×ªµÄʵÏÖ·½·¨

ÓÃÈýÖÖ·½·¨À´ÊµÏÖ×Ö·û´®µÄ·´×ª
/**
* @(#)ReverseString.java
*
* ReverseString application
*
* @author
* @version 1.00 2010/4/20
*/
import java.util.*;
import java.io.*;

public class ReverseString {


public static void main(String[] args) throws IOException{
......

javaÏß³Ìͬ²½ÎÊÌâ

Ò»°ã£¬ÓÐ3ÖÖʹÓÃËø½øÐÐͬ²½µÄ·½·¨
    a.·½·¨Í¬²½£¬ÀýÈçpublic synchronized void xxx()...
    b.¾²Ì¬·½·¨Í¬²½,ÀýÈçpublic static synchronized void xxx()...
    c.³ÌÐò¿éͬ²½,ÀýÈç
        ...
    &n ......

javaµÄÏß³Ìͬ²½»úÖÆsynchronized¹Ø¼ü×ÖµÄÀí½â

ÓÉÓÚͬһ½ø³ÌµÄ¶à¸öÏ̹߳²ÏíͬһƬ´æ´¢¿Õ¼ä£¬ÔÚ´øÀ´·½±ãµÄͬʱ£¬Ò²´øÀ´ÁË·ÃÎʳåÍ»Õâ¸öÑÏÖØµÄÎÊÌâ¡£JavaÓïÑÔÌṩÁËרÃÅ»úÖÆÒÔ½â¾öÕâÖÖ³åÍ»£¬ÓÐЧ±ÜÃâÁËͬһ¸öÊý¾Ý¶ÔÏó±»¶à¸öÏß³Ìͬʱ·ÃÎÊ¡£
ÐèÒªÃ÷È·µÄ¼¸¸öÎÊÌ⣺
       1)synchronized¹Ø¼ü×Ö¿ÉÒÔ×÷Ϊº¯ÊýµÄÐÞÊηû£¬Ò²¿É×÷Ϊº¯ÊýÄÚµÄÓï¾ä£ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ