Java synchronizedÓ÷¨
synchronized¹Ø¼ü×ÖÔÚ¶àÏß³ÌÖеÄ×÷Óãº
Á½ÖÖÓ÷¨£ºsynchronized ·½·¨ºÍ synchronized ¿é¡£
1. synchronized ·½·¨£ºÍ¨¹ýÔÚ·½·¨ÉùÃ÷ÖмÓÈë synchronized¹Ø¼ü×ÖÀ´ÉùÃ÷ synchronized ·½·¨¡£ÈçÉÏÊöÀý×ÓËùÊö¡£
synchronized ·½·¨¿ØÖƶÔÀà³ÉÔ±±äÁ¿µÄ·ÃÎÊ£ºÃ¿¸öÀàʵÀý¶ÔÏó¶ÔÓ¦Ò»°ÑËø£¬Ã¿¸ö synchronized ·½·¨¶¼±ØÐë»ñµÃµ÷Óø÷½·¨µÄÀàʵÀý¶ÔÏóµÄËø·½ÄÜÖ´ÐУ¬·ñÔòËùÊôÏß³Ì×èÈû£¬·½·¨Ò»µ©Ö´ÐУ¬¾Í¶ÀÕ¼¸ÃËø£¬Ö±µ½´Ó¸Ã·½·¨·µ»ØÊ±²Å½«ËøÊÍ·Å£¬´Ëºó±»×èÈûµÄÏ̷߳½ÄÜ»ñµÃ¸ÃËø£¬ÖØÐ½øÈë¿ÉÖ´ÐÐ״̬¡£ÕâÖÖ»úÖÆÈ·±£ÁËͬһʱ¿Ì¶ÔÓÚÿһ¸öÀàʵÀý¶ÔÏ󣬯äËùÓÐÉùÃ÷Ϊ synchronized µÄ³ÉÔ±·½·¨ÖÐÖÁ¶àÖ»ÓÐÒ»¸ö´¦ÓÚ¿ÉÖ´ÐÐ״̬£¨ÒòΪÖÁ¶àÖ»ÓÐÒ»¸öÄܹ»»ñµÃ¸ÃÀàʵÀý¶ÔÏó¶ÔÓ¦µÄËø£©£¬´Ó¶øÓÐЧ±ÜÃâÁËÀà³ÉÔ±±äÁ¿µÄ·ÃÎʳåÍ»£¨Ö»ÒªËùÓпÉÄÜ·ÃÎÊÀà³ÉÔ±±äÁ¿µÄ·½·¨¾ù±»ÉùÃ÷Ϊ synchronized£©¡£
ÔÚ Java ÖУ¬²»¹âÊÇÀàʵÀý£¬Ã¿Ò»¸öÀàÒ²¶ÔÓ¦Ò»°ÑËø£¬ÕâÑùÎÒÃÇÒ²¿É½«ÀàµÄ¾²Ì¬³ÉÔ±º¯ÊýÉùÃ÷Ϊ synchronized £¬ÒÔ¿ØÖÆÆä¶ÔÀàµÄ¾²Ì¬³ÉÔ±±äÁ¿µÄ·ÃÎÊ¡£
synchronized ·½·¨µÄȱÏÝ£ºÈô½«Ò»¸ö´óµÄ·½·¨ÉùÃ÷Ϊsynchronized ½«»á´ó´óÓ°ÏìЧÂÊ£¬µäÐ͵أ¬Èô½«Ïß³ÌÀàµÄ·½·¨ run() ÉùÃ÷Ϊ synchronized £¬ÓÉÓÚÔÚÏ̵߳ÄÕû¸öÉúÃüÆÚÄÚËüÒ»Ö±ÔÚÔËÐУ¬Òò´Ë½«µ¼ÖÂËü¶Ô±¾ÀàÈκΠsynchronized ·½·¨µÄµ÷Óö¼ÓÀÔ¶²»»á³É¹¦¡£µ±È»ÎÒÃÇ¿ÉÒÔͨ¹ý½«·ÃÎÊÀà³ÉÔ±±äÁ¿µÄ´úÂë·Åµ½×¨Ãŵķ½·¨ÖУ¬½«ÆäÉùÃ÷Ϊ synchronized £¬²¢ÔÚÖ÷·½·¨Öе÷Óã¨ÈçÉÏÊöÀý×ÓÖеÄsale()·½·¨£¬ÔÚrun()·½·¨ÖÐÀ´µ÷ÓÃsale()·½·¨£©À´½â¾öÕâÒ»ÎÊÌ⣬µ«ÊÇ Java ΪÎÒÃÇÌṩÁ˸üºÃµÄ½â¾ö°ì·¨£¬ÄǾÍÊÇ synchronized ¿é¡£
2. synchronized ¿é£ºÍ¨¹ý synchronized¹Ø¼ü×ÖÀ´ÉùÃ÷synchronized ¿é¡£Óï·¨ÈçÏ£º
synchronized(syncObject) {
//ÔÊÐí·ÃÎÊ¿ØÖƵĴúÂë
}
¡¡¡¡synchronized ¿éÊÇÕâÑùÒ»¸ö´úÂë¿é£¬ÆäÖеĴúÂë±ØÐë»ñµÃ¶ÔÏó syncObject £¨ÈçǰËùÊö£¬¿ÉÒÔÊÇÀàʵÀý»òÀ࣬ÉÏÊöÀý×ÓÖÐÎÒÃǶ¨ÒåÁËÒ»¸öStringÀàµÄ¶ÔÏ󣩵ÄËø·½ÄÜÖ´ÐУ¬¾ßÌå»úÖÆÍ¬Ç°ËùÊö¡£ÓÉÓÚ¿ÉÒÔÕë¶ÔÈÎÒâ´úÂë¿é£¬ÇÒ¿ÉÈÎÒâÖ¸¶¨ÉÏËøµÄ¶ÔÏ󣬹ÊÁé»îÐԽϸߡ£
¶Ôsynchronized(this)µÄһЩÀí½â
Ò»¡¢µ±Á½¸ö²¢·¢Ï̷߳ÃÎÊͬһ¸ö¶ÔÏóobjectÖеÄÕâ¸ösynchronized(this)ͬ²½´úÂë¿éʱ£¬Ò»¸öʱ¼äÄÚÖ»ÄÜÓÐÒ»¸öÏ̵߳õ½Ö´ÐС£ÁíÒ»¸öÏ̱߳ØÐëµÈ´ýµ±Ç°Ïß³ÌÖ´ÐÐÍêÕâ¸ö´úÂë¿éÒÔºó²ÅÄÜÖ´ÐиôúÂë¿é¡£
¶þ¡¢È»¶ø£¬µ±Ò»¸öÏ̷߳ÃÎÊobjectµÄÒ»¸ösynchronized(this)ͬ²½´úÂë¿éʱ£¬ÁíÒ»¸öÏß³ÌÈÔÈ»¿ÉÒÔ·ÃÎʸÃobjectÖеķÇ
Ïà¹ØÎĵµ£º
Java NIO APIÏê½â
ÔÚJDK
1.4ÒÔǰ£¬JavaµÄIO²Ù×÷¼¯ÖÐÔÚjava.ioÕâ¸ö°üÖУ¬ÊÇ»ùÓÚÁ÷µÄ×èÈû£¨blocking£©API¡£¶ÔÓÚ´ó¶àÊýÓ¦ÓÃÀ´Ëµ£¬ÕâÑùµÄAPIʹÓúܷ½
±ã£¬È»¶ø£¬Ò»Ð©¶ÔÐÔÄÜÒªÇó½Ï¸ßµÄÓ¦Óã¬ÓÈÆäÊÇ·þÎñ¶ËÓ¦Óã¬ÍùÍùÐèÒªÒ»¸ö¸üΪÓÐЧµÄ·½Ê½À´´¦ÀíIO¡£´ÓJDK 1.4Æð£¬NIO
API×÷Ϊһ¸ö»ùÓÚ»º³åÇø£¬²¢ÄÜÌṩ·Ç×èÈû(non-blo ......
ÀàµÄ³õʼ»¯ºÍ¶ÔÏó³õʼ»¯ÊÇ JVM ¹ÜÀíµÄÀàÐÍÉúÃüÖÜÆÚÖзdz£ÖØÒªµÄÁ½¸ö»·½Ú£¬Google ÁËÒ»±éÍøÂ磬ÓйØÀà×°ÔØ»úÖÆµÄÎÄÕµ¹ÊDz»ÉÙ£¬È»¶øÀà³õʼ»¯ºÍ¶ÔÏó³õʼ»¯µÄÎÄÕ²¢²»¶à£¬ÌرðÊÇ´Ó×Ö½ÚÂëºÍ JVM ²ã´ÎÀ´·ÖÎöµÄÎÄÕ¸üÊÇÏÊÓÐËù¼û¡£
±¾ÎÄÖ÷Òª¶ÔÀàºÍ¶ÔÏó³õʼ»¯È«¹ý³Ì½øÐзÖÎö£¬Í¨¹ýÒ»¸öʵ¼ÊÎÊÌâÒýÈ룬½«Ô´´úÂëת»»³É JVM ×Ö½ÚÂëºó£¬ ......
ÉîÒ¹ÏÐÁÄJavaÓëPHP ÒÔ¼°¼Ü¹¹Éè¼ÆË¼ÏëÓë×î¼Ñʵ¼ù
·¢ÐÅÈË: wesley (ÐÄÖеÄÉÁÖ), ÐÅÇø: Java
±ê Ìâ: ÉîÒ¹ÏÐÁÄJavaÓëPHP ÒÔ¼°¼Ü¹¹Éè¼ÆË¼ÏëÓë×î¼Ñʵ¼ù
·¢ÐÅÕ¾: ˮľÉçÇø (Thu Dec 24 01:55:04 2009), Õ¾ÄÚ
×ªÔØ×Ô±¾ÈËÐÂÀ˲©¿Í
http://blog.sina.com.cn/s/blog_53923f940100g7xx.html
£¨ÀÏÎâ×ÔÑÔ×ÔÓ
×î½üƵ·±ÌýË ......
ÎÊ£º
²âÊÔÐÂÊÖ£¬¸ù¾Ý×Ô¼ºÀí½âдµÄµ¥Ôª²âÊÔÓÃÀýÄ£°å£¬µ«ÊÇ¿ª·¢ÈËÔ±(JAVAÓïÑÔ)·´Ó³ÄÑÒÔʵʩ£¬²»ÖªµÀµ½µ×Ó¦¸ÃÈçºÎ¸ÄÕý£¬ÎÒÔ±¾µÄÏë·¨ÊÇÒÔÀàΪµ¥Î»£¬ÎªÈ·±£²âÊÔ¸²¸ÇÂÊ£¬ÏÈ»¿ØÖÆÁ÷ͼ£¬ÒÀ¾Ý¶ÀÁ¢Â·¾¶È·¶¨ÊäÈëÊä³ö£¬ÓÐÁËÊäÈëÊä³ö¾ÍËãÒ»¸öÓÃÀýÁË£¬µ«´ó¼Ò·´Ó³£¬Ò»ÀàΪµ¥Î»»¿ØÖÆÁ÷ͼ²»ºÃ»£¬ÀàÖпÉÄÜÉæ¼°ºÜ¶àº¯Ê ......
1. Java±£´æµÄÎļþÃû±ØÐëÓëÀàÃûÒ»Ö£»
2. Èç¹ûÎļþÖÐÖ»ÓÐÒ»¸öÀ࣬ÎļþÃû±ØÐëÓëÀàÃûÒ»Ö£»
3. Ò»¸öJavaÎļþÖÐÖ»ÄÜÓÐÒ»¸öpublicÀࣻ
4. Èç¹ûÎļþÖв»Ö¹Ò»¸öÀ࣬Îļþ ......