JAVA ¹²ÏíËøºÍÌõ¼þ±äÁ¿Ò»¶þ
¶àÏß³ÌÖ®¼äÐèҪе÷¹¤×÷¡£ÀýÈ磬ä¯ÀÀÆ÷µÄÒ»¸öÏÔʾͼƬµÄÏß³Ì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ÖеÄÒ»¸ö²ÅÓлú»á»ñµÃËø¼ÌÐøÖ´ÐС£
synchronizedµÄ4ÖÖÓ÷¨
1.·½·¨ÉùÃ÷ʱʹÓÃ,·ÅÔÚ·¶Î§²Ù×÷·û(publicµÈ)Ö®ºó,·µ»ØÀàÐÍÉùÃ÷(voidµÈ)֮ǰ.¼´Ò»´ÎÖ»ÄÜÓÐÒ»¸öÏ߳̽øÈë¸Ã·½·¨,ÆäËûÏß³ÌÒªÏëÔÚ´Ëʱµ÷Óø÷½·¨,Ö»ÄÜÅŶӵȺò,µ±Ç°Ïß³Ì(¾ÍÊÇÔÚsynchronized·½·¨ÄÚ²¿µÄÏß³Ì)Ö´ÐÐÍê¸Ã·½·¨ºó,±ðµÄÏ̲߳ÅÄܽøÈë.
ÀýÈç:
&nbs
Ïà¹ØÎĵµ£º
package game;
public class HanTaGame {
public static void main(String[] args) {
fun('1', '2', '3', 2);
}
// ººËþÓÎÏ·½â¾ö·½°¸
public static void fun(char src, char idle, char dest, int n) {
if (1 == n) {
System.out.println(src ......
Java ÀïÃæ0x¿ªÍ·µÄÊýֵΪ16½øÖƵÄ
0xf0 = 15*16 = 240;
//¼òµ¥Ë㣬ºÃ±ÈÊ®½øÖÆ60 = 6 *10 = 60;
int i = 0xf0;
¾ÍÏ൱ÓÚ
int i = ......
Javaѧϰ´ÓÈëÃŵ½¾«Í¨
Ò»¡¢ JDK (Java Development Kit)
JDKÊÇÕû¸öJavaµÄºËÐÄ£¬°üÀ¨ÁË
JavaÔËÐл·¾³£¨Java Runtime
Envirnment£©£¬Ò»¶ÑJava¹¤¾ßºÍJava»ù´¡µÄÀà¿â(rt.jar)¡£²»ÂÛʲôJavaÓ¦Ó÷þÎñÆ÷ʵÖʶ¼ÊÇÄÚÖÃÁËij¸ö°æ±¾µÄJDK¡£Òò´ËÕÆÎÕ
JDKÊÇѧºÃJavaµÄµÚÒ»²½¡£×îÖ÷Á÷µÄJDKÊÇSun¹«Ë¾·¢²¼µÄJDK£¬³ýÁËSunÖ®Í⣬»¹Óк ......
³£³£ÐèÒªµÝ¹éµÄÌæ»»ÎļþÄÚÈÝ£¬Èç×î½üÎÒÏëдÁ˸öjEdit²å¼þ£¬jEditÌṩÁËÒ»¸ö²å¼þÄ£°å£¬ÎÒֻҪȫ²¿Ì滻һϾͳÉÁËÎÒ×Ô¼ºµÄ¹¤³Ì¡£ÔÚlinuxÏ£¬ÕâºÃ°ì£¬shellÀ´¸ã¶¨£¬µ«ÔÚWindowsÏ»òÕß²»ÊìϤshell¾ÍµÃÏëµãÆäËû°ì·¨À´°ìÁË£¬EditPlus¿ÉÒÔ£¬UEÒ²¿ÉÒÔ£¬²»¹ý²»Ì«·½±ãµÄÊÇÎļþÃû²»ºÃÌæ»»£¬ÒÔǰ¸ø×Ô¼ºÐ´¹ýÒ»¸öС¹¤¾ßÀ´³ÉÅú¸ÄMP3µÄÃû×Ö£ ......