µ±Ç°Ò³Ãæ: ¿ª·¢×ÊÁÏÊ×Ò³ ¡ú Java רÌâ ¡ú Java¶àÏß³Ìͬ²½ÖеÄÁ½¸öÌØÊâÀà 
Java¶àÏß³Ìͬ²½ÖеÄÁ½¸öÌØÊâÀà 
ÕªÒª: ̽ÌÖJava¶àÏß³Ìͬ²½±à³ÌÖÐÁ½¸öÌØÊâµÄÀࣺBusyFlag»òLock  
<body bgcolor="#FFFFFF" text="#000000">  <table width="570" border="0" cellspacing="0" cellpadding="5" bgcolor="FBE392">    <tr>       <td>         <table width="570" border="0" cellspacing="0" cellpadding="5">          <tr>             <td bgcolor="E1B004" width="200" align="center">Ì켫IT×ÊѶ¶ÌÐÅ·þÎñ              µçÄÔС¼¼ÇÉ
              <table width="100%" border="0" cellspacing="0" cellpadding="3" bgcolor="fffcc0">                              function check4()              {               if (dn.mobile.value.length!=11)               {                alert("ÊÖ»úºÅÂë²»ÕýÈ·!");                dn.mobile.focus();                return false;               }               return true;              }                              <form name=dn action="http://www.my5757.com/tj/join.jsp" target=_blank onSubmit="return check4()">                  <tr valign=middle>                     <td>×Ê·Ñ£º°üÔÂ5Ôª
                      ÊÖ»ú£º                       <input type=text name=mobile size=11 style="border:1px solid #000000;height=16px">                      <input type=image src="http://www.my5757.com/yesky/images/d34.gif" border="0" width="45" height="18" align="middle" name="image2" >                    </td>                  </tr>                  <input type=hidden name=stype value="yjq">                </form>              </table>            </td>            <td width="370" bgcolor="FBC403">½éÉÜ£ºÏ¸´¦×ÅÊÖ£¬ÇÉ´¦Óù¦¡£¸ßÊֺͲËÄñÖ®¼äµÄ²î±ð¾ÍÊÇ£º¸ßÊÖʲô¶¼ÖªµÀ£¬²ËÄñÖªµÀһЩ¡£µçÄÔС¼¼ÇÉÊÕ¼¯×îÐÂÆæÕиßÕУ¬ÈÃÄãÇáËÉ̤ÉϸßÊÖ֮·¡£(Ê×ÔÂÃâ·Ñ)             </td>          </tr>        </table>      </td>    </tr>  </table>
¡¡¡¡JavaÓïÑÔÄÚÖÃÁËsynchronized¹Ø¼ü×ÖÓÃÓÚ¶Ô¶àÏ߳̽øÐÐͬ²½£¬´ó´ó·½±ãÁËJavaÖжàÏ̳߳ÌÐòµÄ±àд¡£µ«Êǽö½öʹÓÃsynchronized¹Ø¼ü×Ö»¹²»ÄÜÂú×ã¶Ô¶àÏ߳̽øÐÐͬ²½µÄËùÓÐÐèÒª¡£´ó¼ÒÖªµÀ£¬synchronized½ö½öÄܹ»¶Ô·½·¨»òÕß´úÂë¿é½øÐÐͬ²½£¬Èç¹ûÎÒÃÇÒ»¸öÓ¦ÓÃÐèÒª¿çÔ½¶à¸ö·½·¨½øÐÐͬ²½£¬synchroinzed¾Í²»ÄÜʤÈÎÁË¡£ÔÚC++ÖÐÓкܶàͬ²½»úÖÆ£¬±ÈÈçÐźÅÁ¿¡¢»¥³âÌå¡¢ÁÙ½ìÇøµÈ¡£ÔÚJavaÖÐÒ²¿ÉÒÔÔÚsynchronizedÓïÑÔÌØÐԵĻù´¡ÉÏ£¬ÔÚ¸ü¸ß²ã´Î¹
¹½¨ÕâÑùµÄͬ²½¹¤¾ß£¬ÒÔ·½±ãÎÒÃǵÄʹÓá£
<iframe align=right marginWidth=0 marginHeight=0 src="http://images.chinabyte.com/adjs/iframe-pip/y-software-pip.html" frameBorder=0 width=360 scrolling=no height=300></iframe>¡¡¡¡µ±Ç°£¬¹ãΪʹÓõÄÊÇÓÉDoug Lea±àдµÄÒ»¸öJavaÖÐͬ²½µÄ¹¤¾ß°ü£¬¿ÉÒÔÔÚÕâ¶ùÁ˽â¸ü¶àÕâ¸ö°üµÄÏêϸÇé¿ö£º
http://gee.cs.oswego.edu/dl/classes/EDU/oswego/cs/dl/util/concurrent/intro.html
¡¡¡¡¸Ã¹¤¾ß°üÒѾ×÷ΪJSR166Õý´¦ÓÚJCPµÄ¿ØÖÆÏ£¬¼´½«×÷ΪJDK1.5µÄÕýʽ×é³É²¿·Ö¡£±¾ÎIJ¢²»´òËãÏêϸÆÊÎöÕâ¸ö¹¤¾ß°ü£¬¶øÊǶԶàÖÖͬ²½»úÖÆµÄÒ»¸ö½éÉÜ£¬Í¬Ê±¸ø³öÕâÀàͬ²½»úÖÆµÄʵÀýʵÏÖ£¬Õâ²¢²»Êǹ¤Òµ¼¶µÄʵÏÖ¡£µ«ÆäÖлá²Î¿¼Doug LeaµÄÕâ¸öͬ²½°üÖеĹ¤Òµ¼¶ÊµÏÖµÄһЩ´úÂëÆ¬¶Ï¡£
¡¡¡¡±¾ÀýÖл¹ÑØÓÃÉÏÆªÖеÄAccountÀ࣬²»¹ýÎÒÃÇÕâ¶ù±àдһ¸öеÄATMÀàÀ´Ä£Äâ×Ô¶¯Ìá¿î»ú£¬Í¨¹ýÒ»¸öATMTesterµÄÀ࣬Éú³É10¸öATMỊ̈߳¬Í¬Ê±¶ÔJohnÕË»§½øÐвéѯ¡¢Ìá¿îºÍ´æ¿î²Ù×÷¡£AccountÀà×öÁËһЩ¸Ä¶¯£¬ÒÔ±ãÊÊÓ¦±¾ÆªµÄÐèÒª£º 
<table width="100%" bgColor=#ffffff>
<tr>
<td>import java.util.HashMap;
import java.util.Map;
class Account
{
¡¡String name; 
¡¡//float amount;
¡¡//ʹÓÃÒ»¸öMapÄ£Äâ³Ö¾Ã´æ´¢ 
¡¡static Map storage = new HashMap(); 
¡¡static
¡¡{
¡¡¡¡storage.put("John", new Float(1000.0f));
¡¡¡¡storage.put("Mike", new Float(800.0f)); 
¡¡}
¡¡public Account(String name)
¡¡{
¡¡¡¡//System.out.println("new account:" + name); 
¡¡¡¡this.name = name; 
¡¡¡¡//this.amount = ((Float)storage.get(name)).floatValue();
¡¡}
¡¡public synchronized void deposit(float amt)
¡¡{
¡¡¡¡float amount = ((Float)storage.get(name)).floatValue(); 
¡¡¡¡storage.put(name, new Float(amount + amt));
¡¡}
¡¡public synchronized void withdraw(float amt) 
¡¡¡¡throws InsufficientBalanceException 
¡¡¡¡{
¡¡¡¡¡¡float amount = ((Float)storage.get(name)).floatValue(); 
¡¡¡¡¡¡if (amount >= amt) amount -= amt; 
¡¡¡¡¡¡else throw new InsufficientBalanceException();
¡¡¡¡¡¡storage.put(name, new Float(amount)); 
¡¡¡¡}
¡¡public float getBalance()
¡¡{
¡¡¡¡float amount = ((Float)storage.get(name)).floatValue();
¡¡¡¡return amount;
¡¡}
}</td></tr></table>
¡¡¡¡ÔÚеÄAccountÀàÖУ¬ÎÒÃDzÉÓÃÒ»¸öHashMapÀ´´æ´¢ÕË»§ÐÅÏ¢¡£AccountÓÉATMÀàͨ¹ýloginµÇ¼ºóʹÓãº
<table width="100%" bgColor=#ffffff>
<tr>
<td>public class ATM 
{ 
¡¡Account acc; 
¡¡//×÷ΪÑÝʾ£¬Ê¡ÂÔÁËÃÜÂëÑéÖ¤ 
¡¡public boolean login(String name)
¡¡{
¡¡¡¡if (acc != null) throw new IllegalArgumentException("Already logged in!");
¡¡¡¡acc = new Account(name); 
¡¡¡¡return true;
¡¡}
¡¡public void deposit(float amt)
¡¡{
¡¡¡¡acc.deposit(amt);
¡¡}
¡¡public void withdraw(float amt) throws InsufficientBalanceException 
¡¡{
¡¡¡¡acc.withdraw(amt); 
¡¡}
¡¡public float getBalance() 
¡¡{
¡¡¡¡return acc.getBalance();
¡¡}
¡¡public void logout ()
¡¡{
¡¡¡¡acc = null;
¡¡}
} </td></tr></table>
 
¡ü·µ»ØÄ¿Â¼ 
ǰһƪ: 
ʵÀýѧϰStruts   
ºóһƪ: 
ÏÂÒ»´úWEB¿ª·¢Ä£Ê½Tapestry¼ò½é