java ¶àÏß³ÌÖ® wait(),notify(),notifyAll()
http://www.cnblogs.com/anran_guojianjun/archive/2009/04/14/1435278.html
wait(),notify(),notifyAll()²»ÊôÓÚThreadÀà,¶øÊÇÊôÓÚObject»ù´¡Àà,Ò²¾ÍÊÇ˵ÿ¸ö¶ÔÏñ¶¼ÓÐ
wait(),notify(),notifyAll()
µÄ¹¦ÄÜ.ÒòΪ¶¼¸ö¶ÔÏñ¶¼ÓÐËø,ËøÊÇÿ¸ö¶ÔÏñµÄ»ù´¡,µ±È»²Ù×÷ËøµÄ·½·¨Ò²ÊÇ×î»ù´¡ÁË.
ÏÈ¿´java docÔõô˵:
waitµ¼Öµ±Ç°µÄÏ̵߳ȴý£¬Ö±µ½ÆäËûÏ̵߳÷Óô˶ÔÏóµÄ notify() ·½·¨»ò notifyAll()
·½·¨¡£µ±Ç°µÄÏ̱߳ØÐëÓµÓд˶ÔÏó¼àÊÓÆ÷¡£¸ÃÏ̷߳¢²¼¶Ô´Ë¼àÊÓÆ÷µÄËùÓÐȨ²¢µÈ´ý£¬Ö±µ½ÆäËûÏß³Ìͨ¹ýµ÷Óà notify ·½·¨£¬»ò notifyAll
·½·¨Í¨ÖªÔڴ˶ÔÏóµÄ¼àÊÓÆ÷ÉϵȴýµÄÏß³ÌÐÑÀ´¡£È»ºó¸ÃÏ߳̽«µÈµ½ÖØÐ»ñµÃ¶Ô¼àÊÓÆ÷µÄËùÓÐȨºó²ÅÄܼÌÐøÖ´ÐÐ.
notify»½ÐÑÔڴ˶ÔÏó¼àÊÓÆ÷ÉϵȴýµÄµ¥¸öÏ̡߳£Èç¹ûËùÓÐÏ̶߳¼Ôڴ˶ÔÏóÉϵȴý£¬Ôò»áÑ¡Ôñ»½ÐÑÆäÖÐÒ»¸öÏ̡߳£Ö±µ½µ±Ç°µÄÏß³Ì·ÅÆú´Ë¶ÔÏóÉϵÄËø
¶¨£¬²ÅÄܼÌÐøÖ´Ðб»»½ÐѵÄÏ̡߳£´Ë·½·¨Ö»Ó¦ÓÉ×÷Ϊ´Ë¶ÔÏó¼àÊÓÆ÷µÄËùÓÐÕßµÄÏß³ÌÀ´µ÷ÓÃ.
"µ±Ç°µÄÏ̱߳ØÐëÓµÓд˶ÔÏó¼àÊÓÆ÷"Óë"´Ë·½·¨Ö»Ó¦ÓÉ×÷Ϊ´Ë¶ÔÏó¼àÊÓÆ÷µÄËùÓÐÕßµÄÏß³ÌÀ´µ÷ÓÃ"˵Ã÷wait·½·¨Óënotify·½·¨±ØÐëÔÚͬ²½¿éÄÚÖ´
ÐÐ,¼´synchronized(objÖ®ÄÚ).
µ÷ÓöÔÏñwait·½·¨ºó,µ±Ç°Ïß³ÌÊͷŶÔÏñËø,½øÈëµÈ´ý״̬.Ö±µ½ÆäËûÏß³Ì(Ò²Ö»ÄÜÊÇÆäËûÏß³Ì)ͨ¹ýnotify ·½·¨£¬»ò
notifyAll.¸ÃÏß³ÌÖØÐ»ñµÃ¶ÔÏñËø.
¼ÌÐøÖ´ÐÐ,¼ÇµÃÏ̱߳ØÐëÖØÐ»ñµÃ¶ÔÏñËø²ÅÄܼÌÐøÖ´ÐÐ.ÒòΪsynchronized´úÂë¿éÄÚûÓÐËøÊÇ´ç²½²»ÄÜ×ßµÄ.¿´Ò»¸öºÜ¾µäµÄÀý×Ó:
package ProductAndConsume;
import java.util.List;
public class Consume implements Runnable{
private List container = null;
private int count;
public Consume(List lst){
this.container = lst;
}
public void run() {
while(true){
synchronized (container) {
if(container.size()== 0){
try {
container.wait();//·ÅÆúËø
} catch (InterruptedException e) {
e.printStackTrace();
}
}
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
container.remove(0);
container.notify();
System.out.println("ÎÒ³ÔÁË"+(++count)+"¸ö");
}
}
}
}
package ProductAndC
Ïà¹ØÎĵµ£º
JAVAÈÝÆ÷
¡¡¡¡½âÊÍÒ»£º
¡¡¡¡ÈÝÆ÷£¨Container£©
¡¡¡¡Spring ÌṩÈÝÆ÷¹¦ÄÜ£¬ÈÝÆ÷¿ÉÒÔ¹ÜÀí¶ÔÏóµÄÉúÃüÖÜÆÚ¡¢¶ÔÏóÓë¶ÔÏóÖ®¼äµÄÒÀÀµ¹ØÏµ£¬Äú¿ÉÒÔʹÓÃÒ»¸öÅäÖÃÎļþ£¨Í¨³£ÊÇXML£©£¬ÔÚÉÏÃæ¶¨ÒåºÃ¶ÔÏóµÄÃû³Æ¡¢ÈçºÎ²úÉú£¨Prototype ·½Ê½»òSingleton ·½Ê½£©¡¢Äĸö¶ÔÏó²úÉúÖ®ºó±ØÐëÉ趨³ÉΪij¸ö¶ÔÏóµÄÊôÐԵȣ¬ÔÚÆô¶¯ÈÝÆ÷Ö®ºó£¬ËùÓÐ ......
ǰЩÈÕ×ÓÕÛÌÚµÄÔÚÏßÅÄÕÕ£¬ÓÉÓÚÖ»ÊǸüÐÂblob×ֶΣ¬Ã»ÓÐÔÚ±¾µØ±£´æÕÕÆ¬£¬µ¼Ö¿ͻ§ÅÄÄÔÃÅÏëÒªµÄʱºò²»ÄÜÂíÉÏÄóöÀ´¡£Ã»ËµµÄËÈù˿ÍÊÇÉϵÛÄØ£¬×ö°É¡£Ê¹ÓÃÏ̳߳ش´½¨Èý¸öÏß³ÌÈÃ×Ô¶¨Ò»¸öÏß³ÌÄ¿±ê¹²Ïí£¨Ò²¾ÍÊǰѱíÀïµÄ¼Ç¼·Ö³Én×éͬʱִÐе¼³ö£©¡£³ÌÐòºÜ¼òµ¥£¬Ò»¹²ËĸöÀàºÍÒ»¸öojdbc14.jar°ü¡£ÓÉÓÚsqlÓï¾äд´íÁËÔì³É¶à¸öÏ̶߳ÔÒ»¸ ......
JAVAµÄÐòÁл¯API£¬ËüÌṩÁËÒ»¸ö¿ò¼Ü£¬ÓÃÀ´½«¶ÔÏó±àÂë³ÉÒ»¸ö×Ö½ÚÁ÷£¬ÒÔ¼°´Ó×Ö½ÚÁ÷±àÂëÖÐÖØÐ¹¹½¨¶ÔÏó¡£½«Ò»¸ö¶ÔÏó±àÂë³ÉÒ»¸ö×Ö½ÚÁ÷£¬Õâ¸öÊÇÐòÁл¯¹ý³Ì£¬·´¹ýÀ´¾ÍÊÇ·¹ÐòÁл¯¡£Ò»µ©Ò»¸ö¶ÔÏó±»ÐòÁл¯ºó£¬ÔòËüµÄ±àÂë¿ÉÒÔ´ÓÒ»¸öÕýÔÚÔËÐеÄÐéÄâ»ú±»´«µÝµ½ÁíÍâÒ»¸öÐéÄâ»úÉÏ£¬»òÕß±»´æ´¢ÔÚ´ÅÅÌÉÏ£¬¹©ÒÔºó·´ÐòÁл¯Ê¹Óá£ÐòÁл¯¼¼ÊõÎªÔ ......
javaͬһÓû§µÇ¼ÎÊÌâ
1.ÉϸöÔÂÒ²ÓÐÌÖÂÛÕâ¸öÎÊÌâµÄ,ÓкöàÈ˶¼·¢±íÁËÒâ¼û,µ«Ò²Ã»Óбê×¼µÄ´ð°¸
ÎÒ¿´µ½Ò»¸ö,:½«SEssionID´æÈëDBÖÐ,µ±ÄãµÇ¼ʱ,Åжϵ±Ç°µÄSEssionIDºÍDB
ÀïÊDz»ÊÇͬһ¸ö,Èç¹û²»ÊÇ,˵Ã÷ÊǵڶþÈ˵ǼÁË,ÄǾͽ«DBÀïµÄSESSIONID×¢Ïú
È»ºóÔÙ´¦ÀíµÚ¶þ¸öµÇ¼.
2.ÔÚContextÖн¨Á¢Ò»¸öMap <String,Sission>,´ ......
ÕâÆª½Ì³Ì¸üÐÂÓÚ2008ÄêÏÄÌ죬ÓÃÀ´¼¯³ÉSWTºÍXULRunnerÀ´ÔÚSWTÀïÏÔʾһ¸öä¯ÀÀÆ÷¡£ÒªÏë»ñµÃ¸ü¶àÐÅÏ¢£¬Çë²Î¿¼
http://www.eclipse.org/swt/faq.php#whatisbrowser
1£¬¼ò½é
ÕâÆª½Ì³ÌÓÐÁ½¸öÄ¿µÄ¡£Ê×ÏÈ£¬ÎÒÃÇÄÜѧµ½Ò»Ð©XPCOMµÄ¸ÅÄîºÍÔõôͨ¹ýJavaXPCOMÀ´ÔÚjavaÀïʹÓÃËü¡£Æä´Î£¬ÎÒÃÇѧµ½Ôõà ......