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ÖеÄÒ»¸ö²ÅÓлú»á»ñµÃËø¼ÌÐøÖ´ÐС£
Ïà¹ØÎĵµ£º
DESË㷨ΪÃÜÂëÌåÖÆÖеĶԳÆÃÜÂëÌåÖÆ£¬ÓÖ±»³ÉΪÃÀ¹úÊý¾Ý¼ÓÃܱê×¼
£¬ÊÇ1972ÄêÃÀ¹úIBM
¹«Ë¾ÑÐÖÆµÄ¶Ô³ÆÃÜÂëÌåÖÆ¼ÓÃÜËã·¨¡£ÆäÃÜÔ¿³¤¶ÈΪ56룬Ã÷Îİ´64λ½øÐзÖ×飬½«·Ö×éºóµÄÃ÷ÎÄ×éºÍ56λµÄÃÜÔ¿°´Î»Ìæ´ú»ò½»»»µÄ·½·¨ÐγÉÃÜÎÄ×éµÄ¼ÓÃÜ·½·¨¡£
DES¼ÓÃÜËã·¨ÌØµã£º·Ö×é±È½Ï¶Ì¡¢ÃÜÔ¿Ì«¶Ì¡¢ÃÜÂëÉúÃüÖÜÆÚ¶Ì¡¢ÔËËãËٶȽÏÂý¡£
DES¹¤×÷ ......
//1.JavaÖÐ×Ö·û´®²»ÄܶàÐÐÊéд¡£¶àÐÐÊéдÓÃÒýºÅ¸ô¶Ï£¬¼ÓºÅÏàÁ¬¡£
//2.JavaµÄ±êʶ·û¿ÉÒÔÓÃÃÀÔª·ûºÅ¿ªÍ·¡£
//3.JavaÖÐûÓÐÎÞ·ûºÅ±äÁ¿»òÎÞ·ûºÅ³£Á¿µÄ¸ÅÄî¡£ËùÓеıäÁ¿¶¼ÊÇÓзûºÅµÄ¡£
//4.JavaÖбäÁ¿µÄ×Ö³¤Êǹ̶¨µÄ¡£²»´æÔÚcharºÍwcharÖ®·Ö¡£
//5.JavaÖбäÁ¿Î ......
¸ÄÒ»¸öÕâÑùµÄÌâÄ¿Õýʽ¸æËßÄ㣬ÎÒÖÕÓÚ¶¯ÊּǼһЩjavaµÄ±Ê¼ÇÁË¡£ÊµÔںܾÃûÓÐдjavaÁË¡£¹þ¹þ£¬²»ºÃÒâ˼£¬ÎªÁËflash ºǫ́ÓиöÖ§³Ö£¬java Õⲿ·Ö»¹ÊÇҪѧһµã£¬µ«²»ÊǺÜÖØµãѧ¡£Õⲿ·Ö¶«Î÷£¬ÎÒ²»ÊìϤ£¬Ò²ÔÚÂýÂý¼Ç¼¡£×Ô¼º¿´µÄ±Ê¼Ç£¬ËùÒÔÒªÊÇÄã²»ÊÇɵB£¬×îºÃ²»Òª¿´¡£
ÔÚ½ñÍíÁ·Ï°µÄʱºò£¬³¢ÊÔÈ¥Á¬½Ó¿É°®µÄ ......
---------------------------------------
Asp.Net,C#,SQL,JS,WCF,AJAX,¹¤×÷Á÷,WPF,MVC,LINQ,Éè¼ÆÄ£Ê½(¼Ü¹¹)µÈ¼¼ÊõÌÖÂÛ
“ASP.NET(C#)Fans” QQȺ£º96877690
---------------------------------------
²»¹ÜÊÇJ2SE¡¢J2EE»¹ÊÇJ2ME¾´Çë¼ÓÈ룡Eclipse¡¢NetBeans
Java½»Á÷QQ¸ß¼¶ÈºÀ©ÕУº96878255 ......
// 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 ......