JavaÏß³Ì֪ʶÉîÈë½âÎö(2)
¶àÏ̳߳ÌÐò
¶ÔÓÚ¶àÏ̵߳ĺô¦Õâ¾Í²»¶à˵ÁË¡£µ«ÊÇ,ËüͬÑùÒ²´øÀ´ÁËijЩеÄÂé·³¡£Ö»ÒªÔÚÉè¼Æ³ÌÐòÊ±ÌØ±ðСÐÄÁôÒâ,¿Ë·þÕâЩÂé·³²¢²»ËãÌ«À§ÄÑ¡£
(1)ͬ²½Ïß³Ì
Ðí¶àÏß³ÌÔÚÖ´ÐÐÖбØÐ뿼ÂÇÓëÆäËûÏß³ÌÖ®¼ä¹²ÏíÊý¾Ý»òе÷Ö´ÐÐ״̬¡£Õâ¾Í ÐèҪͬ²½»úÖÆ¡£ÔÚJavaÖÐÿ¸ö¶ÔÏó¶¼ÓÐÒ»°ÑËøÓëÖ®¶ÔÓ¦¡£µ«Java²»Ìṩµ¥¶ÀµÄlockºÍunlock²Ù×÷¡£ËüÓɸ߲ãµÄ½á¹¹ÒþʽʵÏÖ, À´±£Ö¤²Ù×÷µÄ¶ÔÓ¦¡£(È»¶ø,ÎÒÃÇ×¢Òâµ½JavaÐéÄâ»úÌṩµ¥¶ÀµÄmonito renterºÍmonitorexitÖ¸ÁîÀ´ÊµÏÖlockºÍunlock²Ù×÷¡£)
synchronizedÓï¾ä¼ÆËãÒ»¸ö¶ÔÏóÒýÓÃ,ÊÔͼ¶Ô¸Ã¶ÔÏóÍê³ÉËø²Ù×÷, ²¢ÇÒÔÚÍê³ÉËø²Ù×÷ǰֹͣ´¦Àí¡£µ±Ëø²Ù×÷Íê³ÉsynchronizedÓï¾äÌåµÃµ½Ö´ÐС£µ±Óï¾äÌåÖ´ÐÐÍê±Ï(ÎÞÂÛÕý³£»òÒì³£),½âËø²Ù×÷×Ô¶¯Íê³É¡£×÷ÎªÃæÏò¶ÔÏóµÄÓïÑÔ,synchronized¾³£Óë·½·¨Á¬Óá£Ò»ÖֱȽϺõİ취ÊÇ,Èç¹ûij¸ö±äÁ¿ÓÉÒ»¸öÏ̸߳³Öµ²¢ÓɱðµÄÏß³ÌÒýÓûò¸³Öµ,ÄÇôËùÓжԸñäÁ¿µÄ·ÃÎʶ¼±ØÐëÔÚij¸ösynchromizedÓï¾ä»òsynchronized·½·¨ÄÚ¡£
ÏÖÔÚ¼ÙÉèÒ»ÖÖÇé¿ö£ºÏß³Ì1ÓëÏß³Ì2¶¼Òª·ÃÎÊij¸öÊý¾ÝÇø,²¢ÇÒÒªÇóÏß³Ì1µÄ·ÃÎÊÏÈÓÚÏß³Ì2, ÔòÕâʱ½öÓÃsynchronizedÊDz»Äܽâ¾öÎÊÌâµÄ¡£ÕâÔÚUnix»òWindows NTÖпÉÓÃSimaphoreÀ´ÊµÏÖ¡£¶øJava²¢²»Ìṩ¡£ÔÚJavaÖÐÌṩµÄÊÇwait()ºÍnotify()»úÖÆ¡£Ê¹ÓÃÈçÏÂ:
synchronized method-1(…){ call by thread 1.
¡Îaccess data area;
available=true;
notify()
}
synchronized method-2(…){¡Îcall by thread 2.
while(!available)
try{
wait();¡Îwait for notify().
}catch (Interrupted Exception e){
} ¡Îaccess data area
}
ÆäÖÐavailableÊÇÀà³ÉÔ±±äÁ¿,ÖóõֵΪfalse¡£Èç¹ûÔÚmethod-2Öмì²éavailableΪ¼Ù,Ôòµ÷ÓÃwait()¡£wait()µÄ×÷ÓÃÊÇʹÏß
³Ì2½øÈë·ÇÔËÐÐ̬,²¢ÇÒ½âËø¡£ÔÚÕâÖÖÇé¿öÏÂ,method-1¿ÉÒÔ±»Ïß³Ì1µ÷Óᣵ±Ö´ÐÐ notify()ºó¡£Ïß³Ì2ÓÉ·ÇÔËÐÐ̬ת±äΪ¿ÉÔËÐÐ̬¡£µ±method-1µ÷Ó÷µ»Øºó¡£Ïß³Ì2 ¿ÉÖØÐ¶ԸöÔÏó¼ÓËø,¼ÓËø³É¹¦ºóÖ´ÐÐwait()·µ»ØºóµÄÖ¸Áî¡£ÕâÖÖ»úÖÆÒ²ÄÜÊÊÓÃÓÚ ÆäËû¸ü¸´ÔÓµÄÇé¿ö¡£
(2)ËÀËø
Èç¹û³ÌÐòÖÐÓм¸¸ö¾ºÕù×ÊÔ´µÄ²¢·¢Ïß³Ì,ÄÇô±£Ö¤¾ùºâÊǺÜÖØÒªµÄ¡£ÏµÍ³¾ùºâÊÇָÿ¸öÏß³ÌÔÚÖ´Ðйý³ÌÖж¼Äܳä·Ö·ÃÎÊÓÐÏÞµÄ×ÊÔ´¡£ÏµÍ³ÖÐûÓжöËÀºÍËÀËøµÄÏ̡߳£Java²¢²»Ìṩ¶ÔËÀËøµÄ¼ì²â»úÖÆ¡£¶Ô´ó¶àÊýµÄJava³ÌÐòÔ±À´Ëµ·ÀÖ¹ËÀËøÊÇÒ»ÖֽϺõÄÑ¡Ôñ¡£×î¼òµ¥µÄ·ÀÖ¹ËÀËøµÄ·½·¨ÊǶԾºÕùµÄ×ÊÔ´ÒýÈëÐòºÅ,Èç¹ûÒ»¸öÏß³ÌÐèÒª¼¸¸ö×ÊÔ´,ÄÇôËü±ØÐëÏȵõ½Ð¡ÐòºÅµÄ×ÊÔ´,ÔÙÉêÇë´óÐ
Ïà¹ØÎĵµ£º
Ò»¡¢¸øUbuntuÅäÖÃJAVA»·¾³
¡¡
¡¡¡¡²Ù×÷ϵͳ°æ±¾£ºUbuntu 7.10 Gutsy
¡¡
¡¡¡¡JAVA°æ±¾£ºJAVA 6
¡¡
¡¡¡¡ÔÚUbuntuϰ²×°JAVAÐéÄâ»úºÍSDK£¨¿ª·¢°ü£©ÊǷdz£ÇáËÉÈÝÒ׵ģº
¡¡
¡¡¡¡ÁªÍøµÄÇé¿öÏÂÔÚÖÕ¶ËÏÂÊäÈëÃüÁî
¡¡
¡¡¡¡$sudo apt-get& ......
1¡¢Oracle8/8i/9iÊý¾Ý¿â£¨thinģʽ£©
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl"; //orclΪÊý¾Ý¿âµÄSID
String user="test";
String password="test";
Connection conn= DriverManager.getConnection(url,user,password);
2¡¢DB ......
import java.util.*;
import java.util.regex.Pattern;
public class StrTools {
/**
* ·Ö¸î×Ö·û´®
*
* @param str String Ôʼ×Ö·û´®
* @param splitsign String ·Ö¸ô·û
* @return String[] ·Ö¸îºóµÄ×Ö·û´®Êý×é
*/
@SuppressWarnings("unchecked")
public static String[] split(Stri ......
Ò» Ï̵߳Ļù±¾¸ÅÄî
Ïß³ÌÊÇÒ»¸ö³ÌÐòÄÚ²¿µÄ˳Ðò¿ØÖÆÁ÷.Ò»¸ö½ø³ÌÏ൱ÓÚÒ»¸öÈÎÎñ,Ò»¸öÏß³ÌÏ൱ÓÚÒ»¸öÈÎÎñÖеÄÒ»ÌõÖ´Ðз¾¶.£»¶à½ø³Ì:ÔÚ²Ù×÷ϵͳÖÐÄÜͬʱÔËÐжà¸öÈÎÎñ(³ÌÐò)£»¶àÏß³Ì:ÔÚͬһ¸öÓ¦ÓóÌÐòÖÐÓжà¸ö˳ÐòÁ÷ͬʱִÐУ»JavaµÄÏß³ÌÊÇͨ¹ýjava.lang.ThreadÀàÀ´ÊµÏֵģ»JVMÆô¶¯Ê±»áÓÐÒ»¸öÓÉÖ÷·½·¨(public static void main( ......