Java СÀý×Ó£ºÏß³Ìͬ²½Àý×Ó£ºÈý¸öѧÉúȡˮ
Èý¸öѧÉúµ½Ò»¸öË®ÁúÍ·ÏÂÅŶÓȡˮ£¬ÈýÈ˶¼È¡ÍêË®ºóÒ»ÆðÀ뿪¡£
ÕâÀïÉæ¼°µ½ÈçºÎÅжÏÈý¸öÈ˶¼È¡ÍêË®¡£Èç¹ûÓÃÆÕͨµÄ¾²Ì¬³ÉÔ±£¬ÊƱػáÒªÓÃÎÞÏÞÑ»·À´µÈ´ý¡£¸üºÃµÄ°ì·¨ÊÇÓà wait-notify »úÖÆ¡£Ç°Á½¸öѧÉúÈ¡ÍêË®ºó¶¼ wait£¬×îºóÒ»¸öѧÉúÈ¡ÍêË®ºó notify£¬ÕâÑù¾ÍÄÜÒ»ÆðÀ뿪ÁË¡£ÏÂÃæÊÇ´úÂëʾÀý£º
/**
* Èý¸öѧÉúÅŶÓȡˮ£¬È¡ÍêºóÒ»ÆðÀ뿪
*
* @author yiding.he
*/
public class SyncDemo_FetchingWater {
private static final ValueLock water = new ValueLock();
public static void main(String[] args) {
String[] student_names = {"¼×", "ÒÒ", "±û"};
for (String student_name : student_names) {
new Student(student_name).start();
}
}
// ѧÉú
private static class Student extends Thread {
private String name;
private Student(String name) {
this.name = name;
}
@Override
public void run() {
try {
synchronized (water) {
Thread.sleep(1000);
System.out.println("ѧÉú" + name + "È¡ÍêÁËË®¡£");
water.value++;
if (water.value == 3) {
System.out.println("Èý¸öÈ˶¼È¡ÍêÁËË®¡£");
water.notifyAll(); // Ö»ÒªÖ´ÐÐÁËÕâ¸ö£¬Ñ§ÉúÃǶ¼»áÀ뿪¡£
} else {
water.wait(); // ͬʱÊÍ·ÅÁËËø£¬ÏÂÒ»¸öÏ߳̽øÈë
}
}
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("ѧÉú" + name + "À뿪ÁË¡£");
}
}
// ´øÖµµÄËø
private static class ValueLock {
public int value;
}
}
¸Ðл bendanlzh µÄÖ¸µã£¡
Ïà¹ØÎĵµ£º
Java NIO APIÏê½â
ÔÚJDK
1.4ÒÔǰ£¬JavaµÄIO²Ù×÷¼¯ÖÐÔÚjava.ioÕâ¸ö°üÖУ¬ÊÇ»ùÓÚÁ÷µÄ×èÈû£¨blocking£©API¡£¶ÔÓÚ´ó¶àÊýÓ¦ÓÃÀ´Ëµ£¬ÕâÑùµÄAPIʹÓúܷ½
±ã£¬È»¶ø£¬Ò»Ð©¶ÔÐÔÄÜÒªÇó½Ï¸ßµÄÓ¦Óã¬ÓÈÆäÊÇ·þÎñ¶ËÓ¦Óã¬ÍùÍùÐèÒªÒ»¸ö¸üΪÓÐЧµÄ·½Ê½À´´¦ÀíIO¡£´ÓJDK 1.4Æð£¬NIO
API×÷Ϊһ¸ö»ùÓÚ»º³åÇø£¬²¢ÄÜÌṩ·Ç×èÈû(non-blo ......
JAVA Ìåϵ¼°Æä±à³ÌµÄ¹ý³Ì
°¥£¬±ÏÒµÁËÒ²Ò»¶Îʱ¼äÁË£¬Ö»ÖªµÀÌìÌì³´úÂ룬 JAVA µÄ»ù´¡ÖªÊ¶»ù±¾ÊÇÍüµôÁË£¬¼ÓÉÏÒÔǰһֱûÓÐϵͳµØÑ§Ï°¹ý£¬¸Ð¾õ¿ìÒª·ÏÁË¡£»¹ÊǺúþ²ÏÂÐÄÀ´Ñ§Ñ§»ù´¡°É¡£²»ÄÜÌìÌ쿼³´úÂë¹ýÈÕ×Ó°¡¡£¡£¡£¡££¨ÏÂÎÄ´ó¶àÀ´×Կα¾ÒÔ¼°Ò»Ð©¼¼ÊõÊÓÆµÉϵÄÄÚÈÝ£¬»ù±¾Àí½âÁËһЩÁË£¬Ê£ÏµÄÓÉÒÔºóµÄѧϰÂýÂýÔ ......
µ¥Àýģʽ£¬¹ËÃû˼Ò壬ֻÄÜÓÐÒ»¸öʵÀý¡£
Ò».´Ó¶àḬ̈߳²È«ËµÆð£¬ÈçÏÂͼ´úÂ룬´ËÎÊÌâ¿ÉÒÔÓÃsynchronized¹Ø¼ü×ÖÀ´½â¾ö¡£¸Ã·½·¨È±µã£ºÃ¿Ò»¸öÏß³ÌÔÚ»ñȡʵÀý¶ÔÏó֮ǰ¶¼ÒªÔÚsynchronizedÉÏͬ²½µÄ¶ÔÏóÉϽøÐеȴý£¬Òò´ËЧÂʲ»¸ß¡£
¶þ.Double Check·½·¨£¬¼ûÏÂͼ´úÂë¡£Double CheckµÄ³õÖÔÊÇÖ»Óе±instanceΪNULLʱִÐеÄÏ̲߳ÅÐèÒªÔÚ ......
ÔÚJAVAÖÐʹÓÃÍÏ×§¹¦ÄÜ
sunÔÚjava2ÖÐÒýÈëÁËһЩÐµķ½·¨À´°ïÖúʵÏÖÍÏ×§¹¦ÄÜ£¬ÕâЩеÄÀàÔÚjava.awt.dnd°üÖÐ
ʵÏÖÒ»¸öD&D²Ù×÷Ò»°ã°üÀ¨Èý¸ö²½Öè:
Ê×ÏÈʵÏÖÒ»¸öÍÏ×§Ô´£¬Õâ¸öÍÏ×§Ô´ºÍÏàÓ¦µÄ×é¼þÊǹØÁªÆðÀ´µÄ
µÚ¶þ²½ÊµÏÖÒ»¸öÍÏ×§Ä¿±ê£¬Õâ¸öÄ¿±êÓÃÀ´ÊµÏÖÍÏ×§ÎïµÄ½ÓÊÕ
µÚÈý²½ÊµÏÖÒ»¸öÊý¾Ý´«Êä¶ÔÏó ......
£¨1£©¸ù¾ÝxmlÎļþÀ´¹ÜÀíÏ̳߳صÄ×î´ó×îСÏß³ÌÊý
¡¡¡¡£¨2£©¶ÔÏ̳߳ØÍ¨¹ýTimer¶¨ÆÚɨÃèÒÔ·ÀÖ¹Ïß³Ìδ¼¤»î£»
¡¡¡¡£¨3£©Í¨¹ýijһ¸ö±äÁ¿£¨±¾³ÌÐòÖÐÊÇfreeThreadCount£©À´µÃµ½¿ÕÏÐÏ̵߳ÄÊýÄ¿£»
¡¡¡¡Ò»¡¢ÅäÖÃxml£¨listen.xml£©ÊÇ£º
¡¡¡¡<?xml version="1.0" encoding="UTF-8"?>
¡¡¡¡ <config>
¡¡¡¡ <Con ......