JavaµÄͬ²½»úÖƺÍsynchronized¹Ø¼ü×Ö
¿ª·¢ÕßÓÐʱ´´½¨µÄ¶àÏ̳߳ÌÐò»áÉú³É´íÎóÖµ»ò²úÉúÆäËüÆæ¹ÖµÄÐÐΪ¡£¹Å¹ÖÐÐΪһ°ã³öÏÖÔÚÒ»¸ö¶àÏ̳߳ÌÐòûʹÓÃͬ²½Á¬ÔØÏ̷߳ÃÎʹؼü´úÂ벿·ÝµÄʱºò¡£Í¬²½Á¬ÔØÏ̷߳ÃÎʹؼü´úÂ벿·ÝÊÇʲôÒâ˼ÄØ£¿ÔÚÕâƪÎÄÕÂÖнâÊÍÁËͬ²½£¬JavaµÄͬ²½»úÖÆ£¬ÒÔ¼°µ±¿ª·¢ÕßûÓÐÕýȷʹÓÃÕâ¸ö»úÖÆʱ³öÏÖµÄÁ½¸öÎÊÌâ¡£Ò»µ©Äã¿´ÍêÕâƪÎÄÕ£¬Äã¾Í¿ÉÒÔ±ÜÃâÔÚÄãµÄ¶àÏß³ÌJava³ÌÐòÖÐÒòȱ·¦Í¬²½¶ø²úÉúµÄÆæ¹ÖÐÐΪ¡£
´´½¨¶àÏß³ÌJava³ÌÐòÄÑÂ𣿽ö´Ó¡¶ÓÃJavaÏ̻߳ñÈ¡ÓÅÒìÐÔÄÜ£¨I£©¡·ÖлñµÃµÄÐÅÏ¢Äã¾Í¿ÉÒԻش𣬲»¡£±Ï¾¹£¬ÎÒÒѾÏòÄãÏÔʾÁËÈçºÎÇáËɵش´½¨Ï̶߳ÔÏó£¬Í¨¹ýµ÷ÓÃThreadµÄstart()·½·¨Æð¶¯ÓëÕâЩ¶ÔÏóÏà¹ØµÄỊ̈߳¬ÒÔ¼°Í¨¹ýµ÷ÓÃÆäËüThread·½·¨£¬±ÈÈçÈý¸öÖØÔصÄjoin()·½·¨Ö´Ðмòµ¥µÄÏ̲߳Ù×÷¡£ÖÁ½ñÈÔÓÐÐí¶à¿ª·¢ÕßÔÚ¿ª·¢Ò»Ð©¶àÏ̳߳ÌÐòʱÃæÁÙÀ§ÄѾ³Óö¡£ËûÃǵijÌÐò¾³£¹¦Äܲ»Îȶ¨»ò²úÉú´íÎóÖµ¡£ÀýÈ磬һ¸ö¶àÏ̳߳ÌÐò¿ÉÄܽ«²»ÕýÈ·µÄ¹ÍÔ±×ÊÁÏ´æÖüÔÚÊý¾Ý¿âÖУ¬±ÈÈçÐÕÃûºÍµØÖ·¡£ÐÕÃû¿ÉÄÜÊôÓÚÒ»¸ö¹ÍÔ±µÄ£¬¶øµØÖ·È´ÊôÓÚÁíÒ»¸öµÄ¡£ÊÇʲôÒýÆðÕâÖÖÆæ¹ÖÐÐΪµÄÄØ£¿ ÊÇȱ·¦Í¬²½£ºÁ¬ÔØÐÐΪ£¬»òÔÚͬһʱ¼äÅÅÐò£¬Ï̷߳ÃÎÊÄÇЩÈöàÖØÏ̲߳Ù×÷µÄÀàºÍ×ֶαäÁ¿ÊµÀýµÄ´úÂëÐòÁУ¬ÒÔ¼°ÆäËû¹²Ïí×ÊÔ´¡£ÎÒ³ÆÕâЩ´úÂëÐòÁÐΪ¹Ø¼ü´úÂ벿·Ý¡£
×¢Ò⣺²»ÏóÀàºÍʵÀý×ֶαäÁ¿£¬Ï̲߳»Äܹ²Ïí±¾µØ±äÁ¿ºÍ²ÎÊý¡£ÔÒòÊÇ£º±¾µØ±äÁ¿ºÍ²ÎÊýÔÚÒ»¸öÏ̷߳½·¨ÖзÖÅä——½Ð¶ÑÕ»¡£½á¹û£¬Ã¿Ò»¸öÏ̶߳¼ÊÕµ½Ëü×Ô¼º¶ÔÄÇЩ±äÁ¿µÄ¿½±´¡£Ïà·´£¬Ïß³ÌÄܹ»¹²ÏíÀà×ֶκÍʵÀý×Ö¶ÎÒòΪÄÇЩ±äÁ¿ÔÚÒ»¸öÏ̷߳½·¨£¨½Ð¶ÑÕ»£©ÖÐûÓб»·ÖÅ䡣ȡ¶ø´úÖ®£¬ËüÃÇ×÷ΪÀࣨÀà×ֶΣ©»ò¶ÔÏó£¨ÊµÀý×ֶΣ©µÄÒ»²¿·ÝÔÚ¹²ÏíÄÚ´æ¶ÑÖб»·ÖÅä¡£
ÕâƪÎÄÕ½«½ÌÄãÈçºÎʹÓÃͬ²½Á¬ÔØÏ̷߳ÃÎʹؼü´úÂ벿·Ý¡£ÎÒÓÃÒ»¸ö˵Ã÷ΪʲôһЩ¶àÏ̳߳ÌÐò±ØÐëʹÓÃͬ²½µÄÀý×Ó×÷Ϊ¿ªÊ¼¡£ÎÒ½ÓÏÂÀ´¾Í¼àÊÓÆ÷ºÍËø̽ÌÖJavaµÄͬ²½»úÖƺÍsynchronized ¹Ø¼ü×Ö¡£ÎÒͨ¹ýÑо¿ÓÉÕâÑùµÄ´íÓòúÉúµÄÁ½¸öÎÊÌâÅж¨³£³£ÒòΪ²»ÕýÈ·µÄʹÓÃͬ²½»úÖƶø·ñÈÏÁËËüµÄºÃ´¦¡£
ÔĶÁ¹ØÓÚÏ̳߳ÌÐòµÄÕû¸öϵÁУº
· µÚI²¿·Ý£º½éÉÜÏ̡߳¢Ïß³ÌÀ༰Runnable
· µÚII²¿·Ý£ºÊ¹ÓÃͬ²½Á¬ÔØÏ̷߳ÃÎʹؼü´úÂ벿·Ý
¶ÔÓÚͬ²½µÄÐèÒª
ΪʲôÎÒÃÇÐèҪͬ²½ÄØ£¿Ò»Öֻش𣬿¼ÂÇÕâ¸öÀý×Ó£ºÄãдһ¸öʹÓÃÒ»¶ÔÏß³ÌÄ£ÄâÈ¡¿î/´æ¿î½ðÈÚÊÂÎñµÄJava³ÌÐò¡£ÔÚÄǸö³ÌÐòÖУ¬Ò»¸öÏ̴߳¦Àí´æ¿î£¬Í¬Ê±ÆäËüÏß³ÌÕý´¦ÀíÈ¡¿î¡£Ã¿Ò»¸öÏ̲߳Ù×÷Ò»¶Ô¹²Ïí±äÁ¿¡¢À༰ʵÀý×ֶαäÁ¿£¬ÕâЩÓÃÀ´±êʶ½ðÈÚÊÂÎñµÄÐÕÃûºÍÕ˺š£¶ÔÓÚÒ»¸öÕýÈ·µÄ½ðÈÚÊÂÎñ
Ïà¹ØÎĵµ£º
/* ¸ßÊÖÖ®×÷£¬±¾È˽÷ÒÔÊÕ²ØÕßÉí·ÝÄóö¹²Ïí¹©´ó¼Ò²Î¿¼! */
/*
* ÏòÁ¿½Ó¿Ú
*/
package dsa;
public interface Vector {
//·µ»ØÏòÁ¿ÖÐÔªËØÊýÄ¿
public int getSize();
//ÅжÏÏòÁ¿ÊÇ·ñΪ¿Õ
public boolean isEmpty();
//È¡ÖÈΪrµÄÔªËØ
public Object getAtRank(int r)
throws ......
/* ¸ßÊÖÖ®×÷£¬±¾È˽÷ÒÔÊÕ²ØÕßÉí·Ý¹²ÏíÔ´Â룬¹©´ó¼Ò²Î¿¼Ö®! */
/*
* ÁбíADT½Ó¿Ú
*/
package dsa;
public interface List {
//²éѯÁÐ±íµ±Ç°µÄ¹æÄ£
public int getSize();
//ÅжÏÁбíÊÇ·ñΪ¿Õ
public boolean isEmpty();
//·µ»ØµÚÒ»¸öÔªËØ£¨µÄλÖã©
public Position first();
//· ......
ÎÒ½ñÌìѧϰÁËÁ¬½Ó³Ø£¬ÊÇ·ëÍþÀÏʦ½²µÄ£¬ÎÒ×öÁ˼òµ¥µÄ±Ê¼Ç£º
Êý¾Ý¿âÁ¬½Ó³Ø:
Ϊ½â¾ö´«Í³¿ª·¢ÖеÄÊý¾Ý¿âÁ¬½ÓÎÊÌ⣬¿ÉÒÔ²ÉÓÃÊý¾Ý¿âÁ¬½Ó³Ø¼¼Êõ¡£
Êý¾Ý¿âÁ¬½Ó³ØµÄ»ù±¾Ë¼Ïë¾ÍÊÇΪÊý¾Ý¿âÁ¬½Ó½¨Á¢Ò»¸ö“»º³å³Ø”¡£Ô¤ÏÈÔÚ»º³å³ØÖзÅÈëÒ»¶¨ÊýÁ¿µÄÁ¬½Ó£¬µ±ÐèÒª½¨Á¢Êý¾Ý¿âÁ¬½Óʱ£¬Ö»Ðè´Ó“»º³å³Ø”ÖÐÈ¡³öÒ»¸ö£¬Ê¹Ó ......
ÎÒ½ñÌìѧϰÁË£¬Ê¹ÓÃjunit½øÐе¥Ôª²âÊÔµÄ֪ʶºÍʹÓÃlog4j½øÐÐÈÕÖ¾¹ÜÀíµÄ֪ʶ£¬ÎÒ×öÁ˼òµ¥µÄ±Ê¼Ç£º
Junit
JUnitÊÇÒ»¸ö¿ª·¢Ô´´úÂëµÄJava²âÊÔ¿ò¼Ü£¬ÓÃÓÚ±àдºÍÔËÐпÉÖظ´µÄ²âÊÔ¡£ËûÊÇÓÃÓÚµ¥Ôª²âÊÔ¿ò¼ÜÌåϵxUnitµÄÒ»¸öʵÀý£¨ÓÃÓÚjavaÓïÑÔ£©¡£Ëü°üÀ¨ÒÔÏÂÌØÐÔ£º
1¡¢ÓÃÓÚ²âÊÔÆÚÍû½á¹ûµÄ¶ÏÑÔ£¨Assertion£©
2¡¢ÓÃÓÚ¹²Ïí¹²Í¬ ......
ÎÒ½ñÌìѧϰÁËÙ¡ÀÏʦ½²µÄJavaScript½âÎöDomÎĵµµÄ֪ʶ£º
Ò»¡¢ ½Úµã·ÖΪ3ÖÖÀàÐÍ£¬ÔªËؽڵ㣬ÊôÐԽڵ㣬Îı¾½Úµã
¶þ¡¢ ²éÕҽڵ㣺
l js´úÂë²»ÄÜдÔÚbodyÔªËصÄÇ°Ã棬js ´úÂëдÔÚ <head> ½ ......