See More

--------------------------- ¶àÏ̻߳ù´¡ | --------------------------- # volatile ¹Ø¼ü×Ö * ÄÚ´æ¿É¼ûÐÔ,µ±¶à¸öÏ̲߳Ù×÷¹²ÏíÊý¾ÝµÄʱºò,±Ë´Ë²»¿É¼û * ¸Ã¹Ø¼ü×Ö¿ÉÒÔ±£Ö¤,ÄÚ´æÖеÄÊý¾Ý¶ÔÓÚ¶à¸öÏ̵߳IJÙ×÷,¶¼ÊǿɼûµÄ * ¸Ã¹Ø¼ü×Ö½µµÍЧÂÊ,µ«ÊÇ±È synchronized ЧÂʸߵãµã,ËãÊÇÇáÁ¿¼¶µÄͬ²½µÄ²ßÂÔ * synchronized ÊÇ»¥³âËø,volatile ²¢²»Äܱ£Ö¤±äÁ¿µÄÔ­×ÓÐÔ # Ô­×Ó±äÁ¿ # CASËã·¨ * ʹÓÃCAS(Compare And Swap)Ëã·¨±£Ö¤Êý¾ÝµÄÔ­×ÓÐÔ * ÊÇÓ²¼þ¶ÔÓÚ²¢·¢·ÃÎʵÄÖ§³Ö * ¸ÃËã·¨°üº¬ÁËÈý¸ö²Ù×÷Êý 1,ÄÚ´æÖµ - v 2,Ô¤¹ÀÖµ - a 3,¸üÐÂÖµ - b * Ö»Óе± v==a ʱ, v = b,·ñÔò²»»á×öÈκβÙ×÷ --------------------------- java.util.concurrent | --------------------------- # ÃæÏò²¢·¢µÄ¹¤¾ßÀà Lock ConcurrentHashMap CountDownLatch CopyOnWriteArrayList CopyOnWriteArraySet ExecutorService AtomicInteger Callable