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

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±äÁ¿ÌṩÀíÏëµÄḬ̈߳²È«£¬±ØÐëͬʱÂú×ãÏÂÃæÁ½¸öÌõ¼þ£º
1.       ¶Ô±äÁ¿µÄд²Ù×÷²»ÒÀÀµÓÚµ±Ç°Öµ¡£
2.       ¸Ã±äÁ¿Ã»Óаüº¬ÔÚ¾ßÓÐÆäËû±äÁ¿µÄ²»±äʽÖÐ


Ïà¹ØÎĵµ£º

javaÀûÓÃSocketÍøÂç´«µÝÎļþ

·þÎñÆ÷¶Ë:
package com.huahua;
import java.io.BufferedOutputStream;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class ServerThread extends Thread {
......

JavaÊ±Çøbug£¬TimeZone.setDefault()Ö»ÔÚµ±Ç°Ïß³ÌÓÐЧ

   ÏîÄ¿ÊÇ»ùÓÚGMTʱ¼äµÄ£¬ÔÚϵͳÆô¶¯µÄʱºò£¬ÎÒÃǾͻáµ÷ÓÃTimeZone.setDefault(timeZone)½«Ä¬ÈÏÊ±ÇøÉèΪGMT¡£
   ºóÀ´Í»È»·¢ÏÖ£¬ÓÐʱÓû§Ñ¡ÔñµÄʱ¼ä¾­¹ýºǫ́һȦºó»Ø²úÉú8¸öСʱÎó²î¡£ÓÖÊǼäЪÐԵģ¬ÒªËûÖØÏÖµÄʱºòÓÖÆ«²»À´¡£¿àÐÄdebug£¬ÖÕÓÚ·¢ÏÖÔÚ²¿·ÖÏß³ÌÖУ¬Ê±Çø»¹ÊÇGMT+8£¬ºǫ́ij¸öµ÷ÓÿÉÄܰÑÊ±Çø ......

Java Swing JEditorPane

JEditorPaneÌṩÈýÖÖÀàÐ͵ÄÎı¾ÏÔʾ£¬text/plain,text/html,text/rtf.
JEditorPaneµÄ¼òµ¥Ó÷¨DEMOÈçÏ£º
package ibees.swing;
import java.awt.Toolkit;
import java.io.IOException;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.event.Hype ......

JavaÏà¶Ô·¾¶/¾ø¶Ô·¾¶×ܽá

.»ù±¾¸ÅÄîµÄÀí½â
¾ø¶Ô·¾¶£º¾ø¶Ô·¾¶¾ÍÊÇÄãµÄÖ÷Ò³ÉϵÄÎļþ»òĿ¼ÔÚÓ²ÅÌÉÏÕæÕýµÄ·¾¶£¬(URLºÍÎïÀí·¾¶)ÀýÈ磺
C:xyz est.txt ´ú±íÁËtest.txtÎļþµÄ¾ø¶Ô·¾¶¡£http://www.sun.com/index.htmÒ²´ú±íÁËÒ»¸öURL¾ø¶Ô·¾¶¡£
Ïà¶Ô·¾¶£ºÏà¶ÔÓëij¸ö»ù׼Ŀ¼µÄ·¾¶¡£°üº¬WebµÄÏà¶Ô·¾¶£¨HTMLÖеÄÏà¶ÔĿ¼£©£¬ÀýÈ磺ÔÚ
ServletÖ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ