µ±Ç°Ò³Ãæ: ¿ª·¢×ÊÁÏÊ×Ò³ ¡ú 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¼ò½é