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

java Ïß³ÌС½á

1, ΪʲôwaitÓënotify֮ǰ±ØÐëÒª¼Ósynchronized?
´ð°¸ÆäʵºÜ¼òµ¥£¬Ò²ÊÇΪÁË·ÀÖ¹µÈ´ý-֪ͨ»úÖÆ³öÏÖrace condition
Ϊʲô»á³öÏÖrace condition ?
´ð£º ¶ÔÏóÔÚ±»wait֮ǰÒѾ­±»ÁíÒ»Ïß³Ìnotify , Ö®ºóµÄwait »áÓÀ¾ÃÍ£Ö¹,²¢µ¼ÖÂdeadlock(ËÀËø)
ÀíÏëÇé¿ö£º
1, µÚÒ»¸öÏß³ÌÅжϸöÔÏóÊÇ·ñÒªwait
2, µÚÒ»¸öÏ߳̽«¶ÔÏówait
3, µÚ¶þ¸öÏß³ÌÔÙ½«¶ÔÏónotify
ʵ¼ÊÇé¿ö
1, µÚÒ»¸öÏß³ÌÅжϸöÔÏóÊÇ·ñÒªwait
2, µÚ¶þ¸öÏ߳̽«¶ÔÏónotify
3, µÚÒ»¸öÏ߳̽«¶ÔÏówait
ΪÁË·ÀÖ¹ÕâЩÇé¿ö£¬²ÅÐèÒªÔÚwaitÓënotify֮ǰ¼Ósynchronized
java ´úÂë
A a = A.getInstance();//µ¥Àý¶ÔÏó,ͬһ·ÝʵÀý²»Ïú»Ù
synchronized (a) {
a.wait();
}
-------------------------------ÁíÒ»Ïß³Ì
A a = A.getInstance();
synchronized(a) {
a.notify();
}
µÈ´ý-֪ͨ»úÖÆ±ØÐëÓësychronizedÒ»ÆðÓÃ,·ñÔò×ÔÉíÒ²»áÓÐ race condition.
2, ¾²Ì¬Í¬²½·½·¨Óë·Ç¾²Ì¬Í¬²½·½·¨µÄÇø±ð
ÓÐʱ£¬ÎÒÃǾ­³£»áÅöµ½ÕâÑùµÄ´úÂ룡
ÒµÎñÂß¼­µÄ·â×°Àà:
public class Logic {
private static final Log log = LogFactory.getLog(Logic.class);
private static Logic logic;
 
private Logic() {}
 
public static Logic getInstance() {
if (null == logic) {
logic = new Logic();
}
 
return logic;
}
 
public static synchronized void testStatic() {
log.info(Thread.currentThread().getName() + " : static method is running");
}
 
public synchronized void testNonStatic() {
log.info(Thread.currentThread().getName() + " : non static method is running");
}
}
·Ç¾²Ì¬·½·¨µÄÖ´ÐÐ:
public class ThreadRun1 extends Thread {
private static final Log log = LogFactory.getLog(ThreadRun1.class);
 
public void run() {
Logic logic = Logic.getInstance(); // object reference
 
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
log.error("some exceptions occured :", e);
}
 
logic.testNonStatic();
 
logEnd();
}
 
private void logEnd() {
log.info("thread ru


Ïà¹ØÎĵµ£º

JavaỊ̈߳ºÐÂÌØÕ÷ Ìõ¼þ±äÁ¿

JavaỊ̈߳ºÐÂÌØÕ÷-Ìõ¼þ±äÁ¿
 
Ìõ¼þ±äÁ¿ÊÇJava5Ïß³ÌÖкÜÖØÒªµÄÒ»¸ö¸ÅÄ¹ËÃû˼Ò壬Ìõ¼þ±äÁ¿¾ÍÊDZíʾÌõ¼þµÄÒ»ÖÖ±äÁ¿¡£µ«ÊDZØÐë˵Ã÷£¬ÕâÀïµÄÌõ¼þÊÇûÓÐʵ¼Êº¬ÒåµÄ£¬½ö½öÊǸö±ê¼Ç¶øÒÑ£¬²¢ÇÒÌõ¼þµÄº¬ÒåÍùÍùͨ¹ý´úÂëÀ´¸³ÓèÆäº¬Òå¡£
 
ÕâÀïµÄÌõ¼þºÍÆÕͨÒâÒåÉϵÄÌõ¼þ±í´ïʽÓÐ×ÅÌìÈÀÖ®±ð¡£
 
Ìõ¼þ±äÁ¿¶¼ÊµÏÖÁË ......

Java²Ù×÷ÎļþʵÀýÏê½âÓ¦ÓÃ

ÊäÈëÊä³öÁ÷
ÔÚJavaÖУ¬ÎÒÃǰÑÄܹ»¶Áȡһ¸ö×Ö½ÚÐòÁеĶÔÏó³Æ×÷Ò»¸öÊäÈëÁ÷;¶øÎÒÃǰѹ»Ð´Ò»¸ö×Ö½ÚÐòÁгÆ×÷Ò»¸öÊä³öÁ÷¡£ËüÃÇ·Ö±ðÓɳéÏóÀà InputStreamºÍOutputStreamÀà±íʾ¡£ÒòÎªÃæÏò×Ö½ÚµÄÁ÷²»·½±ãÓÃÀ´´¦Àí´æ´¢ÎªUnicode£¨Ã¿¸ö×Ö·ûʹÓÃÁ½¸ö×Ö½Ú)µÄÐÅÏ¢¡£ËùÒÔJavaÒýÈëÁËÓÃÀ´´¦ÀíUnicode×Ö·ûµÄÀà²ã´Î£¬ÕâЩÀàÅÉÉú×Ô³éÏóÀàReade ......

JAVAÀà·¾¶

Java Àà·¾¶
Java Àà·¾¶¸æËß java ½âÊÍÆ÷ºÍ javac ±àÒëÆ÷È¥ÄÄÀïÕÒËüÃÇÒªÖ´Ðлòµ¼ÈëµÄÀà¡£ÀࣨÄú¿ÉÄÜ×¢Òâµ½µÄÄÇЩ *.class Îļþ£©¿ÉÒÔ´æ´¢ÔÚĿ¼»ò jar ÎļþÖУ¬»òÕß´æ´¢ÔÚÁ½ÕßµÄ×éºÏÖУ¬µ«ÊÇÖ»ÓÐÔÚËüÃÇλÓÚÀà·¾¶ÖеÄij¸öµØ·½Ê±£¬Java ±àÒëÆ÷»ò½âÊÍÆ÷²Å¿ÉÒÔÕÒµ½ËüÃÇ¡£
ÔÚ Windows ÖУ¬Àà·¾¶ÖеĶà¸öÏîÊÇÓ÷ֺŷָô£¨ ;£ ......

ÀûÓÃJavaʵÏÖzipѹËõ/½âѹËõ

ת×Ô£º
pconline£ºhttp://www.pconline.com.cn/pcedu/empolder/gj/java/0411/499156.html
ºÃµÄ¶«Î÷ת¹ýÀ´¿´¿´
ÓÉÓÚÍøÂç´ø¿íÓÐÏÞ,ËùÒÔÊý¾ÝÎļþµÄѹËõÓÐÀûÓÚÊý¾ÝÔÚInternetÉϵĿìËÙ´«Êä,ͬʱҲ½ÚÊ¡·þÎñÆ÷µÄÍâ´æ¿Õ¼ä¡£
¡¡¡¡Java 1.1ʵÏÖÁËI/OÊý¾ÝÁ÷ÓëÍøÂçÊý¾ÝÁ÷µÄµ¥Ò»½Ó¿Ú,Òò´ËÊý¾ÝµÄѹËõ¡¢ÍøÂç´«ÊäºÍ½âѹËõµÄʵÏֱȽÏÈÝÒ× ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ