Java Ïß³Ì Thread ¶ÔÏóËøµÄwaitºÍnotify½âÎö
ͨ³££¬¶àÏß³ÌÖ®¼äÐèҪе÷¹¤×÷¡£ÀýÈ磬ä¯ÀÀÆ÷µÄÒ»¸öÏÔʾͼƬµÄÏß³ÌdisplayThreadÏëÒªÖ´ÐÐÏÔʾͼƬµÄÈÎÎñ£¬±ØÐëµÈ´ýÏÂÔØÏß³ÌdownloadThread½«¸ÃͼƬÏÂÔØÍê±Ï¡£Èç¹ûͼƬ»¹Ã»ÓÐÏÂÔØÍ꣬displayThread¿ÉÒÔÔÝÍ££¬µ±downloadThreadÍê³ÉÁËÈÎÎñºó£¬ÔÙ֪ͨdisplayThread“ͼƬ׼±¸Íê±Ï£¬¿ÉÒÔÏÔʾÁË”£¬Õâʱ£¬displayThread¼ÌÐøÖ´ÐС£
¡¡
¡¡
¡¡¡¡ÒÔÉÏÂß¼¼òµ¥µÄ˵¾ÍÊÇ£ºÈç¹ûÌõ¼þ²»Âú×㣬ÔòµÈ´ý¡£µ±Ìõ¼þÂú×ãʱ£¬µÈ´ý¸ÃÌõ¼þµÄÏ߳̽«±»»½ÐÑ¡£ÔÚJavaÖУ¬Õâ¸ö»úÖƵÄʵÏÖÒÀÀµÓÚwait/notify¡£µÈ´ý»úÖÆÓëËø»úÖÆÊÇÃÜÇйØÁªµÄ¡£ÀýÈ磺
¡¡¡¡
¡¡¡¡synchronized(obj) {
¡¡¡¡ while(!condition) {
¡¡ ¡¡obj.wait();
¡¡¡¡ }
¡¡¡¡
obj.doSomething();
¡¡¡¡}
¡¡¡¡
¡¡¡¡
µ±Ïß³ÌA»ñµÃÁËobjËøºó£¬·¢ÏÖÌõ¼þcondition²»Âú×㣬ÎÞ·¨¼ÌÐøÏÂÒ»´¦Àí£¬ÓÚÊÇÏß³ÌA¾Íwait()¡£
¡¡¡¡
¡¡¡¡ÔÚÁíÒ»Ïß³ÌBÖУ¬Èç¹ûB¸ü¸ÄÁËijЩÌõ¼þ£¬Ê¹µÃÏß³ÌAµÄconditionÌõ¼þÂú×ãÁË£¬¾Í¿ÉÒÔ»½ÐÑÏß³ÌA£º
¡¡synchronized(obj) {
¡¡¡¡condition = true;
¡¡¡¡obj.notify();
¡¡
¡¡}
¡¡¡¡
¡¡
¡¡ÐèҪעÒâµÄ¸ÅÄîÊÇ£º
¡¡# µ÷ÓÃobjµÄwait(), notify()·½·¨Ç°£¬±ØÐë»ñµÃobjËø£¬Ò²¾ÍÊDZØÐëдÔÚsynchronized(obj) {...} ´úÂë¶ÎÄÚ¡£
¡¡# µ÷ÓÃobj.wait()ºó£¬Ïß³ÌA¾ÍÊÍ·ÅÁËobjµÄËø£¬·ñÔòÏß³ÌBÎÞ·¨»ñµÃobjËø£¬Ò²¾ÍÎÞ·¨ÔÚsynchronized(obj) {...} ´úÂë¶ÎÄÚ»½ÐÑA¡£
¡¡# µ±obj.wait()·½·¨·µ»Øºó£¬Ïß³ÌAÐèÒªÔٴλñµÃobjËø£¬²ÅÄܼÌÐøÖ´ÐС£
¡¡# Èç¹ûA1,A2,A3¶¼ÔÚobj.wait()£¬ÔòBµ÷ÓÃobj.notify()Ö»ÄÜ»½ÐÑA1,A2,A3ÖеÄÒ»¸ö£¨¾ßÌåÄÄÒ»¸öÓÉJVM¾ö¶¨£©¡£
¡¡
¡¡ # obj.notifyAll()ÔòÄÜÈ«²¿»½ÐÑA1,A2,A3£¬µ«ÊÇÒª¼ÌÐøÖ´ÐÐobj.wait()µÄÏÂÒ»ÌõÓï¾ä£¬±ØÐë»ñµÃobjËø£¬Òò´Ë£¬A1,A2,A3Ö»ÓÐÒ»¸öÓлú»á»ñµÃËø¼ÌÐøÖ´ÐУ¬ÀýÈçA1£¬ÆäÓàµÄÐèÒªµÈ´ýA1ÊÍ·ÅobjËøÖ®ºó²ÅÄܼÌÐøÖ´ÐС£
¡¡¡¡
¡¡¡¡# µ±Bµ÷ÓÃobj.notify/notifyAllµÄʱºò£¬BÕý³ÖÓÐobjËø£¬Òò´Ë£¬A1,A2,A3Ëä±»»½ÐÑ£¬µ«ÊÇÈÔÎÞ·¨»ñµÃobjËø¡£Ö±µ½BÍ˳ösynchronized¿é£¬ÊÍ·ÅobjËøºó£¬A1,A2,A3ÖеÄÒ»¸ö²ÅÓлú»á»ñµÃËø¼ÌÐøÖ´ÐС£
Ïà¹ØÎĵµ£º
×¢Òâ,Óõ½ÁËÄÚ²¿Àà:
new Thread
(
new Runnable()
{
public void run()
{
try
&n ......
http://www.cn-java.com/www1/?action-viewnews-itemid-3295
ÎÒÏë£Ê£Á£Ö£ÁµÄ°®ºÃÕߣ¬ÓÈÆäÊdzõѧÕß´ó¶¼ÓйýÕâÑùµÄ¾Àú£¬¾ÍÊÇϲ»¶£Ê£Á£Ö£Á±à³ÌÓïÑÔ£¨Õâ¸öÈ˵ÄÇé¿ö¿ÉÄܲ»Ò»Ñù£©£¬µ«ÊÇÓÐʱºò×Ü»á¾õµÃJAVAµÄÓŵã±ãÊÇËýµÄ“ÖÂÃü”µÄȱµã¡£´ó¼ÒµÄÐÅÄîÒÀ¾ÉÊÇ“Ò»´Î±àÒ룬µ½´¦ÔËÐДµ«ÊǾÍÊÇÒòΪÖÁÒ»µã£Ê£Á£Ö£Á ......
1.ÕûÊý
byte 1×Ö½Ú
short 2×Ö½Ú
int 4×Ö½Ú
long 8×Ö½Ú
2.¸¡µã
float
double
Ìáʾ
£¨1£© ¸¡µãÐ͵ÄÖµ£¬Èç¹ûûÓÐÌرðÖ¸Ã÷£¬Ä¬ÈÏÊÇ double Ð͵Ä
£¨2£© ¶¨Òå float Ð͵Äʱºò£¬Ò»¶¨ÒªÖ¸Ã÷ÊÇ float Ð͵ģ¬¿ÉÒÔͨ¹ýÔÚÊý×ÖºóÃæÌí¼Ó&rd ......
±¾ÎÄÊ×ÏȽéÉÜjavaÁ¬½ÓoracleҪעÒâµÄ¼¸µã£¬È»ºó½éÉܼ¸ÖÖ³£ÓõÄÁ¬½Ó·½Ê½¡£
Ò»¡¢¼¸µã×¢Ò⣺
1¡¢ÔÚ¿Í»§¶ËÈí¼þ¿ª·¢ÖÐʹÓÃThinÇý¶¯³ÌÐò
ÔÚ¿ª·¢JavaÈí¼þ·½Ã棬OracleµÄÊý¾Ý¿âÌṩÁËËÄÖÖÀàÐ͵ÄÇý¶¯³ÌÐò£¬¶þÖÖÓÃÓÚÓ¦ÓÃÈí¼þ¡¢applets¡¢servletsµÈ¿Í»§¶ËÈí¼þ£¬ÁíÍâ¶þÖÖÓÃÓÚÊý¾Ý¿âÖеÄJava´æ´¢¹ý³ÌµÈ·þÎñÆ ......
// multi.MultiServer.java
package multi;
import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
public class MultiServer {
private int port = 8000;
private int backlog = 42;
private ServerSocket server_socket;
private Thread ......