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
Ïà¹ØÎĵµ£º
Ò»¡¢Axis°²×° 1¡¢»·¾³ J2SE SDK 1.5 or 1.6: ÎÒʹÓà 1.6 Servlet Container: ÎÒʹÓõÄTomcat 6.0
2¡¢µ½ http://ws.apache.org/Axis/ÍøÕ¾ÏÂÔØAxis°²×°°ü
3¡¢ÏÈÔÚeclipseÏÂн¨web projectΪWebServiceDemo.ÔÚTomcatµÄÅäÖÃxmlÅäÖÃÉÏ£º<Context path="/webservice" docBase="D:\workspace\WebServiceDemo\WebRoot"/>. ......
¡¡JavaÈí¼þÓÐMIDP2.0ºÍMIDP1.0Á½ÖÖ¡£Òò´Ë£¬ÎÒÃÇÔÚ°²×°JavaÈí¼þʱ£¬Ê×ÏÈÐèÒª¸ù¾ÝÈí¼þÌṩµÄÐÅÏ¢ÅжÏÈí¼þÊÇ·ñÊʺÏ×Ô¼ºµÄÊÖ»ú£¬´Ó¶ø±ÜÃâ°²×°Ö®ºóÎÞ·¨Ê¹ÓõÄÇé¿ö·¢Éú¡£ ´ËÍ⣬ÓÐЩÈí¼þ¿ÉÄÜ»áÓëÊÖ»úÄÚÒѾ°²×°µÄÈí¼þÓгåÍ»£¬ÔÚ°²×°Ç°Ò²Ó¦×Ðϸ¿´Çå³þÏà¹ØËµÃ÷¡£
¡¡¡¡°²×°³£¼ûÎÊÌâ½â´ð
¡¡¡¡Ö¢×´1£º°²×°Íê³ÉºóÈ´×Ô¶¯É¾³ý£¬»òÏÔʾÎÞ ......
Ò»¡¢java.util.Formatter
java.util.Formatter ÊÇJDK1.5ÐÂÔöµÄÀà¿â£¬¹¦ÄܺÜÇ¿´ó£¬µ«ÊDz»ºÃÕÆÎÕ£¬¾ÍÏñÏÂÆåÒ»Ñù£¬ÖªµÀÈçºÎ×߯å×Ó£¬ºÍÊìÁ·Ó¦ÓÃÍêÈ«ÊÇÁ½ÂëÊ¡£
¸ñʽ»¯Ö÷ÒªÓÃÔÚÎı¾Êä³ö·½Ã棬±ÈÈ磬Êý×Ö¡¢ÈÕÆÚ¡¢½ð¶îµÈ£¬»¹ÓÐÀàËÆ³¬ÊеĹºÎﵥСƱµÈµÈ£¬¶¼»áÓõ½¸ñʽ»¯Êä³öµÄ¹¤¾ß¡£ÔÚ´ËÀàû³öÏÖ֮ǰ£¬Ö»ÄÜͨ¹ý¿ ......
¢Ù¼Ì³ÐTimerTask£¬ÖØÐ´run·½·¨
package bamboo.task;
import java.util.TimerTask;
public class TimeTaskTest extends TimerTask{
@Override
public void run() {
System.out.println("hi");
}
}
¢Úͨ¹ýtimerÀ´ÉèÖÃij¸öʱ¼äÀ´µ÷Ó㬻òÕßÊÇÏà¸ô¶à³¤Ê±¼äµ÷ÓÃ
package bamboo.test;
......
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
im ......