JAVAÏß³ÌÖ®Áù£ºÏ̵߳ÄͨÐÅ
ËäÈ»¾³£´´½¨¶à¸ö²»ÏàͬµÄÏß³ÌÀ´Íê³É²»Ïà¹ØµÄÈÎÎñ£¬È»¶øÓÐʱִÐеÄÈÎÎñ¿ÉÄÜÓÐÒ»¶¨ÁªÏµ£¬ÕâÑù¾ÍÐèҪʹÕâЩÏ߳̽øÐн»»¥¡£±ÈÈçÓÐÒ»¸öË®ÌÁ£¬ÆäÖжÔË®ÌÁ²Ù×÷Î޷ǰüÀ¨“½øË®”ºÍ“ÅÅË®”£¬ÕâÁ½¸öÐÐΪ¸÷×Ô´ú±íÒ»¸öỊ̈߳¬µ±Ë®ÌÁÖÐûÓÐˮʱ£¬“ÅÅË®”ÐÐΪ²»ÄÜÔÙ½øÐУ»µ±Ë®ÌÁË®Âúʱ£¬“½øË®”ÐÐΪ²»ÄÜÔÙ½øÐС£
ÔÚJavaÖÐÓÃÓÚÏ̼߳äͨÐŵķ½·¨ÊÇÔÚǰÎÄÖÐÌáµ½¹ýµÄwait()Óënotify()·½·¨£¬ÄÃË®ÌÁµÄÀý×ÓÀ´ËµÃ÷£¬Ïß³ÌA´ú±í“½øË®”£¬Ïß³ÌB´ú±í“ÅÅË®”£¬ÕâÁ½¸öÏ̶߳ÔË®ÌÁ¶¼¾ßÓзÃÎÊȨÏÞ¡£¼ÙÉèÏß³ÌBÊÔͼ×ö“ÅÅË®”ÐÐΪ£¬È»¶øË®ÌÁÖÐȴûÓÐË®¡£ÕâʱºòÏß³ÌBÖ»ºÃµÈ´ýÒ»»á¡£¿ÉÒÔʹÓÃÈçÏ¿ØÖÆ£º
if(water.isEmpty)
{
water.wait();
}
ÔÚÓÉÏß³ÌA½«Ë®ÌÁעˮ֮ǰ£¬Ïß³ÌB²»ÄÜ´ÓÕâ¸ö¶ÓÁÐÖÐÊÍ·Å£¬Ëü²»ÄÜÔÙ´ÎÔËÐС£µ±Ïß³ÌA½«Ë®×¢ÈëË®ÌÁÖкó£¬Ó¦¸ÃÓÉÏß³ÌAÀ´Í¨ÖªÏß³ÌÐòBË®ÌÁÖÐÒѾ±»×¢ÈëË®ÁË£¬Ïß³ÌB²Å¿ÉÒÔÔËÐС£´Ëʱ£¬Ë®ÌÁÖеȴý¶ÓÁÐÖеĵÚÒ»¸ö±»×èÈûµÄÏß³ÌÔÚ¶ÓÁÐÖб»ÊͷųöÀ´£¬²¢ÇÒ¿ÉÒÔÖØÐ¼ÓÈ뾺Õù¡£¿ÉÒÔʹÓÃÈçÏ¿ØÖÆ£º
water.setValue(String water)
water.notify();
Ôڴ˽«“½øË®”Óë“ÅÅË®”³éÏóΪÏß³ÌA£¬Ïß³ÌB¡£“Ë®ÌÁ”³éÏóΪÏß³ÌAÓëÏß³ÌBµÄ¹²Ïí¶ÔÏówater£¬ÉÏÊöÇé¿ö¼´¿É¿´×÷Ïß³ÌͨÐÅ¡£
Ïß³ÌͨÐÅ¿ÉÒÔʹÓÃwait()Óënotify()·½·¨¡£notify()·½·¨×î¶àÖ»ÄÜÊͷŵȴý¶ÓÁÐÖеĵÚÒ»¸öỊ̈߳¬Èç¹ûÓжà¸öÏß³ÌÔڵȴý£¬¿ÉÒÔʹÓÃnotifyAll()·½·¨£¬ÊÍ·ÅËùÓÐÏ̡߳£ÁíÍ⣬wait()·½·¨³ýÁË¿ÉÒÔ±»notify()·½·¨µ÷ÓÃÖÕÖ¹ÒÔÍ⣬»¹¿ÉÒÔͨ¹ýµ÷ÓÃÏ̵߳Äinterrupt()·½·¨À´Öжϣ¬Ç°ÎÄÖÐÒѾÌáµ½¹ý£¬Í¨¹ýµ÷ÓÃÏ̵߳Äinterrupt()·½·¨À´ÖÕÖ¹£¬wait()·½·¨»áÅ׳öÒ»¸öÒì³£¡£Òò´Ë£¬Èçͬsleep()·½·¨£¬Ò²ÐèÒª½«wait()·½·¨·ÅÔÚtry/catchÓï¾ä¿éÖС£
ÔÚʵ¼ÊÓ¦ÓÃÖУ¬wait()Óënotify()·½·¨±ØÐëÔÚͬ²½·½·¨»òͬ²½¿éÖе÷Óã¬ÒòΪֻÓлñµÃÕâ¸ö¹²Ïí¶ÔÏ󣬲ſÉÄÜÊÍ·ÅËü¡£ÎªÁËʹÏ̶߳ÔÒ»¸ö¶ÔÏóµ÷ÓÃwait()»ònotiry()·½·¨£¬Ï̱߳ØÐëËø¶¨ÄǸöÌØ¶¨µÄ¶ÔÏó£¬Õâ¸öʱºò¾ÍÐèҪͬ²½»úÖÆ½øÐб£»¤¡£¾ÙÀýÈçÏ£º
(1)ÒÔË®ÌÁΪÀý£¬ÏÂÃæÊÇÔÚͬ²½»úÖÆ±£»¤Ïµ÷ÓÃwait()·½·¨µÄ´úÂëÆ¬¶Î¡£
synchronized(water){
Ïà¹ØÎĵµ£º
ÓÃÈýÖÖ·½·¨À´ÊµÏÖ×Ö·û´®µÄ·´×ª
/**
* @(#)ReverseString.java
*
* ReverseString application
*
* @author
* @version 1.00 2010/4/20
*/
import java.util.*;
import java.io.*;
public class ReverseString {
public static void main(String[] args) throws IOException{
......
Ò»°ã£¬ÓÐ3ÖÖʹÓÃËø½øÐÐͬ²½µÄ·½·¨
a.·½·¨Í¬²½£¬ÀýÈçpublic synchronized void xxx()...
b.¾²Ì¬·½·¨Í¬²½,ÀýÈçpublic static synchronized void xxx()...
c.³ÌÐò¿éͬ²½,ÀýÈç
...
&n ......
volatile¹Ø¼ü×ÖÓÐʲôÓã¿
¿ÖűȽÏÒ»ÏÂvolatileºÍsynchronizedµÄ²»Í¬ÊÇ×îÈÝÒ×½âÊÍÇå³þµÄ¡£volatileÊDZäÁ¿ÐÞÊηû£¬¶øsynchronizedÔò×÷ÓÃÓÚÒ»¶Î´úÂë»ò·½·¨£»¿´ÈçÏÂÈý¾äget´úÂ룺
int i1; ......
JAVAËÄÖÖ»ù±¾ÅÅÐò,°üÀ¨Ã°ÅÝ·¨,²åÈë·¨,Ñ¡Ôñ·¨,SHELLÅÅÐò·¨.ÆäÖÐÑ¡Ôñ·¨ÊÇðÅÝ·¨µÄ¸Ä½ø,SHELLÅÅÐò·¨ÊÇ ²åÈë·¨µÄ¸Ä½ø.ËùÒÔ´Ó¸ù±¾ÉÏÀ´Ëµ¿ÉÒÔ¹éÄÉΪÁ½ÖÖ²»Í¬µÄÅÅÐò·½·¨:¼´:²åÈë·¨£¦Ã°ÅÝ·¨¡£
Ò»¡¢ ²åÈë·¨
¡¡¡¡±éÀúÅÅÐò¼¯ºÏ£¬Ã¿µ½Ò»¸öÔªËØÊ±£¬¶¼Òª½«Õâ¸öÔªËØÓëËùÓÐËü֮ǰµÄÔªËØ±éÀú±È½ÏÒ»±é£¬È÷ûºÏÅÅÐò˳ÐòµÄÔªËØ°¤¸öÒÆ¶¯µ½µ±Ç°· ......