JavaÏß³Ìͬ²½»úÖÆsynchronized¹Ø¼ü×ÖµÄÀí½â
¡¾IT168 ¼¼ÊõÎĵµ¡¿Ïß³Ìͬ²½£º
¡¡¡¡ÓÉÓÚͬһ½ø³ÌµÄ¶à¸öÏ̹߳²ÏíͬһƬ´æ´¢¿Õ¼ä£¬ÔÚ´øÀ´·½±ãµÄͬʱ£¬Ò²´øÀ´ÁË·ÃÎʳåÍ»Õâ¸öÑÏÖØµÄÎÊÌâ¡£JavaÓïÑÔÌṩÁËרÃÅ»úÖÆÒÔ½â¾öÕâÖÖ³åÍ»£¬ÓÐЧ±ÜÃâÁËͬһ¸öÊý¾Ý¶ÔÏó±»¶à¸öÏß³Ìͬʱ·ÃÎÊ¡£
¡¡¡¡ÐèÒªÃ÷È·µÄ¼¸¸öÎÊÌ⣺
¡¡¡¡1)synchronized¹Ø¼ü×Ö¿ÉÒÔ×÷Ϊº¯ÊýµÄÐÞÊηû£¬Ò²¿É×÷Ϊº¯ÊýÄÚµÄÓï¾ä£¬Ò²¾ÍÊÇÆ½Ê±ËµµÄͬ²½·½·¨ºÍͬ²½Óï¾ä¿é¡£Èç¹ûÔÙϸµÄ·ÖÀ࣬synchronized¿É×÷ÓÃÓÚinstance±äÁ¿¡¢object reference(¶ÔÏóÒýÓÃ)¡¢staticº¯ÊýºÍclass literals(ÀàÃû³Æ×ÖÃæ³£Á¿)ÉíÉÏ¡£
¡¡¡¡2)ÎÞÂÛsynchronized¹Ø¼ü×Ö¼ÓÔÚ·½·¨ÉÏ»¹ÊǶÔÏóÉÏ£¬ËüÈ¡µÃµÄËø¶¼ÊǶÔÏ󣬶ø²»ÊǰÑÒ»¶Î´úÂë»òº¯Êýµ±×÷Ëø¨D¨D¶øÇÒͬ²½·½·¨ºÜ¿ÉÄÜ»¹»á±»ÆäËûÏ̵߳ĶÔÏó·ÃÎÊ¡£
¡¡¡¡3)ÿ¸ö¶ÔÏóÖ»ÓÐÒ»¸öËø(lock)ÓëÖ®Ïà¹ØÁª¡£
¡¡¡¡4)ʵÏÖͬ²½ÊÇÒªºÜ´óµÄϵͳ¿ªÏú×÷Ϊ´ú¼ÛµÄ£¬ÉõÖÁ¿ÉÄÜÔì³ÉËÀËø£¬ËùÒÔ¾¡Á¿±ÜÃâÎÞνµÄͬ²½¿ØÖÆ¡£
¡¡¡¡1¡¢synchronized¹Ø¼ü×ÖµÄ×÷ÓÃÓòÓжþÖÖ£º
¡¡¡¡1)ÊÇij¸ö¶ÔÏóʵÀýÄÚ£¬synchronized aMethod(){}¿ÉÒÔ·ÀÖ¹¶à¸öÏß³Ìͬʱ·ÃÎÊÕâ¸ö¶ÔÏóµÄsynchronized·½·¨(Èç¹ûÒ»¸ö¶ÔÏóÓжà¸ösynchronized·½·¨£¬Ö»ÒªÒ»¸öÏ̷߳ÃÎÊÁËÆäÖеÄÒ»¸ösynchronized·½·¨£¬ÆäËüÏ̲߳»ÄÜͬʱ·ÃÎÊÕâ¸ö¶ÔÏóÖÐÈκÎÒ»¸ösynchronized·½·¨)¡£Õâʱ£¬²»Í¬µÄ¶ÔÏóʵÀýµÄ synchronized·½·¨ÊDz»Ïà¸ÉÈŵġ£Ò²¾ÍÊÇ˵£¬ÆäËüÏß³ÌÕÕÑù¿ÉÒÔͬʱ·ÃÎÊÏàͬÀàµÄÁíÒ»¸ö¶ÔÏóʵÀýÖеÄsynchronized·½·¨;
¡¡¡¡2)ÊÇij¸öÀàµÄ·¶Î§£¬synchronized static aStaticMethod{}·ÀÖ¹¶à¸öÏß³Ìͬʱ·ÃÎÊÕâ¸öÀàÖеÄsynchronized static ·½·¨¡£Ëü¿ÉÒÔ¶ÔÀàµÄËùÓжÔÏóʵÀýÆð×÷Óá£
¡¡¡¡synchronized ·½·¨¿ØÖƶÔÀà³ÉÔ±±äÁ¿µÄ·ÃÎÊ£ºÃ¿¸öÀàʵÀý¶ÔÓ¦Ò»°ÑËø£¬Ã¿¸ö synchronized ·½·¨¶¼±ØÐë»ñµÃµ÷Óø÷½·¨µÄÀàʵÀýµÄËø·½ÄÜÖ´ÐУ¬·ñÔòËùÊôÏß³Ì×èÈû£¬·½·¨Ò»µ©Ö´ÐУ¬¾Í¶ÀÕ¼¸ÃËø£¬Ö±µ½´Ó¸Ã·½·¨·µ»ØÊ±²Å½«ËøÊÍ·Å£¬´Ëºó±»×èÈûµÄÏ̷߳½ÄÜ»ñµÃ¸ÃËø£¬ÖØÐ½øÈë¿ÉÖ´ÐÐ״̬¡£ÕâÖÖ»úÖÆÈ·±£ÁËͬһʱ¿Ì¶ÔÓÚÿһ¸öÀàʵÀý£¬ÆäËùÓÐÉùÃ÷Ϊ synchronized µÄ³ÉÔ±º¯ÊýÖÐÖÁ¶àÖ»ÓÐÒ»¸ö´¦ÓÚ¿ÉÖ´ÐÐ״̬(ÒòΪÖÁ¶àÖ»ÓÐÒ»¸öÄܹ»»ñµÃ¸ÃÀàʵÀý¶ÔÓ¦µÄËø)£¬´Ó¶øÓÐЧ±ÜÃâÁËÀà³ÉÔ±±äÁ¿µÄ·ÃÎʳåÍ»(Ö»ÒªËùÓпÉÄÜ·ÃÎÊÀà³ÉÔ±±äÁ¿µÄ·½·¨¾ù±»ÉùÃ÷Ϊ synchronized)¡£
¡¡¡¡ÔÚ Java ÖУ¬²»¹âÊÇÀàʵÀý£¬Ã¿Ò»¸öÀàÒ²¶ÔÓ¦Ò»°ÑËø£¬ÕâÑùÎÒÃÇÒ²¿É½«ÀàµÄ¾²Ì¬³ÉÔ±º¯ÊýÉùÃ÷Ϊ synchronized £¬ÒÔ¿ØÖÆÆä¶ÔÀàµÄ¾²Ì¬³ÉÔ±±äÁ¿µÄ·ÃÎÊ¡£
¡¡¡¡synchronized ·½·¨µÄȱÏÝ£ºÍ¬²½·½·¨£¬Õâʱsynchro
Ïà¹ØÎĵµ£º
Java NIO APIÏê½â
ÔÚJDK
1.4ÒÔǰ£¬JavaµÄIO²Ù×÷¼¯ÖÐÔÚjava.ioÕâ¸ö°üÖУ¬ÊÇ»ùÓÚÁ÷µÄ×èÈû£¨blocking£©API¡£¶ÔÓÚ´ó¶àÊýÓ¦ÓÃÀ´Ëµ£¬ÕâÑùµÄAPIʹÓúܷ½
±ã£¬È»¶ø£¬Ò»Ð©¶ÔÐÔÄÜÒªÇó½Ï¸ßµÄÓ¦Óã¬ÓÈÆäÊÇ·þÎñ¶ËÓ¦Óã¬ÍùÍùÐèÒªÒ»¸ö¸üΪÓÐЧµÄ·½Ê½À´´¦ÀíIO¡£´ÓJDK 1.4Æð£¬NIO
API×÷Ϊһ¸ö»ùÓÚ»º³åÇø£¬²¢ÄÜÌṩ·Ç×èÈû(non-blo ......
ÓÃJava½Ó¿ÚʵÏֻص÷º¯ÊýµÄµÈ¼Û¹¦ÄÜ
Ê×ÏÈ£¬¿´Ò»Ï»ص÷º¯ÊýµÄ¶¨Òå¼°ÆðÔ´£º
¼ò¶øÑÔÖ®£¬»Øµ÷º¯Êý¾ÍÊÇÒ»¸öͨ¹ýº¯ÊýÖ¸Õëµ÷Óõĺ¯Êý£¬Èç¹ûÄã°Ñº¯ÊýµÄÖ¸Õë(µØÖ·)×÷Ϊ²ÎÊý´«µÝ¸øÁíÒ»¸öº¯Êý£¬µ±Õâ¸öÖ¸Õë±»ÓÃΪµ÷ÓÃËüËùÖ¸ÏòµÄº¯Êýʱ£¬ÎÒÃǾÍ˵Êǻص÷º¯Êý¡£
ΪʲôҪʹÓûص÷º¯Êý£¿
ÒòΪ¿ÉÒ԰ѵ÷ÓÃÕßÓë±»µ÷ÓÃÕß·Ö¿ª¡£µ÷ÓÃÕß²»¹ØÐı» ......
Õâ¸öÊÇ×Ô¼º¹ýȥΪÁË·½±ã²Ù×÷excelÊý¾Ý,дµÄÒ»¸ö¹¤¾ßÀà,ûÓÐÓÅ»¯¹ý,ºÇºÇ
ÉÏÃæµÄÊǹ¤¾ßÀà,ÏÂÃæÌáÓ÷¨,д·¨ºÜ±¿,µ«ÓÃ×Å»¹ºÜ·½±ã
package com.dtb.utils;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Array ......
²éÁËÐ©ÍøÉϵÄ×ÊÁÏ£¬·¢ÏÖÈç¹û×ÓÀàÏòÉÏתÐÍΪ¸¸À࣬Ôò»áÒÅʧµô¸¸ÀàÖÐûÓж¨ÒåµÄ·½·¨£¬¶ø³ýÁËprivateµÄÊôÐÔÍ⣬ÆäËûµÄÊôÐÔ¶¼»á±»¸¸ÀàµÄÊôÐÔ¸²¸Ç¡£
<¸¸ÀàÒýÓÃÖ¸Ïò×ÓÀà¶ÔÏó>
<new¶ÔÏóµÄÄÚ´æÇé¿ö£º¢Ù£ºÎªËùÓеijÉÔ±±äÁ¿·ÖÅäÄÚ´æ¿Õ¼ ......
±à³Ì£º±àдһ¸ö½ØÈ¡×Ö·û´®µÄº¯Êý£¬ÊäÈëΪһ¸ö×Ö·û´®ºÍ×Ö½ÚÊý£¬Êä³öΪ°´×Ö½Ú½ØÈ¡µÄ×Ö·û´®¡£µ«ÊÇÒª±£Ö¤ºº×Ö²»±»½Ø°ë¸ö£¬Èç"ÎÒABC"4£¬Ó¦¸Ã½ØÎª"ÎÒAB"£¬ÊäÈë"ÎÒABCººDEF"£¬6£¬Ó¦¸ÃÊä³öΪ"ÎÒABC"¶ø²»ÊÇ"ÎÒABC+ººµÄ°ë¸ö"¡£
¡¡¡¡public static String substring(String str, int toCount,String& ......