Javaͬ²½»úÖÆ synchronized
²»¾ÃǰÓõ½ÁËͬ²½£¬ÏÖÔڻعýÍ·À´¶ÔJAVAÖеÄͬ²½×ö¸ö×ܽᣬÒÔ¶Ôǰ¶Îʱ¼ä¹¤×÷µÄ×ܽáºÍ×ÔÎÒ¼¼ÊõµÄÌõÀí»°¡£JAVAÖÐsynchronized¹Ø¼ü×ÖÄܹ»×÷Ϊº¯ÊýµÄÐÞÊηû£¬Ò²¿É×÷Ϊº¯ÊýÄÚµÄÓï¾ä£¬Ò²¾ÍÊÇÆ½Ê±ËµµÄͬ²½·½·¨ºÍͬ²½Óï¾ä¿é¡£¼ÙÈçÔÙϸµÄ·ÖÀ࣬synchronized¿É×÷ÓÃÓÚinstance±äÁ¿¡¢object reference£¨¶ÔÏóÒýÓã©¡¢staticº¯ÊýºÍclass literals(ÀàÃû³Æ×ÖÃæ³£Á¿)ÉíÉÏ¡£
ÔÚ½øÒ»²½²ûÊö֮ǰ£¬ÎÒÃÇÐèÒªÃ÷È·¼¸µã£º
A£®ÎÞÂÛsynchronized¹Ø¼ü×Ö¼ÓÔÚ·½·¨ÉÏ»¹ÊǶÔÏóÉÏ£¬ËûÈ¡µÃµÄËø¶¼ÊǶÔÏ󣬶ø²»ÊǰÑÒ»¶Î´úÂë»òº¯Êýµ±×÷Ëø¨D¨D¶øÇÒͬ²½·½·¨ºÜ¿ÉÄÜ»¹»á±»ÆäËûÏ̵߳ĶÔÏó·ÃÎÊ¡£
B£®Ã¿¸ö¶ÔÏóÖ»ÓÐÒ»¸öËø£¨lock£©ºÍÖ®Ïà¹ØÁª¡£
C£®ÊµÏÖͬ²½ÊÇÒªºÜ´óµÄϵͳ¿ªÏú×÷Ϊ´ú¼ÛµÄ£¬ÉõÖÁ¿ÉÄÜÔì³ÉËÀËø£¬ËùÒÔ¾¡Á¿±ÜÃâÎÞνµÄͬ²½¿ØÖÆ¡£
½Ó×ÅÀ´ÌÖÂÛsynchronizedÓõ½²»Í¬µØ·½¶Ô´úÂë²úÉúµÄÓ°Ï죺
¼ÙÉèP1¡¢P2ÊÇͬһ¸öÀàµÄ²»Í¬¶ÔÏó£¬Õâ¸öÀàÖж¨ÒåÁËÒÔϼ¸ÖÖÇé¿öµÄͬ²½¿é»òͬ²½·½·¨£¬P1¡¢P2¾Í¶¼Äܹ»µ÷ÓÃËûÃÇ¡£
1£® °Ñsynchronizedµ±×÷º¯ÊýÐÞÊηûʱ£¬Ê¾Àý´úÂëÈçÏ£º
Public synchronized void method(){
//….
}
ÕâÒ²¾ÍÊÇͬ²½·½·¨£¬ÄÇÕâʱsynchronizedËø¶¨µÄÊÇÄĸö¶ÔÏóÄØ£¿ËûËø¶¨µÄÊǵ÷ÓÃÕâ¸öͬ²½·½·¨¶ÔÏó¡£Ò²¾ÍÊÇ˵£¬µ±Ò»¸ö¶ÔÏóP1ÔÚ²»Í¬µÄÏß³ÌÖÐÖ´ÐÐÕâ¸öͬ²½·½·¨Ê±£¬ËûÃÇÖ®¼ä»áÐγɻ¥³â£¬´ïµ½Í¬²½µÄЧ¹û¡£µ«ÊÇÕâ¸ö¶ÔÏóËùÊôµÄClassËù²úÉúµÄÁíÒ»¶ÔÏóP2È´Äܹ»ÈÎÒâµ÷ÓÃÕâ¸ö±»¼ÓÁËsynchronized¹Ø¼ü×ֵķ½·¨¡£
ÉϱߵÄʾÀý´úÂëµÈͬÓÚÈçÏ´úÂ룺
public void method()
{
synchronized (this) // (1)
{
//…..
}
}
(1)´¦µÄthisÖ¸µÄÊÇÊ²Ã´ÄØ£¿ËûÖ¸µÄ¾ÍÊǵ÷ÓÃÕâ¸ö·½·¨µÄ¶ÔÏó£¬ÈçP1¡£¿É¼ûͬ²½·½·¨ÊµÖÊÊǽ«synchronized×÷ÓÃÓÚobject reference¡£¨D¨DÄǸöÄõ½ÁËP1¶ÔÏóËøµÄỊ̈߳¬²ÅÄܹ»µ÷ÓÃP1µÄͬ²½·½·¨£¬¶ø¶ÔP2¶øÑÔ£¬P1Õâ¸öËøºÍËûºÁ²»Ïà¸É£¬³ÌʽҲ¿ÉÄÜÔÚÕâÖÖÇéÐÎϰÚÍÑͬ²½»úÖÆµÄ¿ØÖÆ£¬Ôì³ÉÊý¾Ý»ìÂÒ£º£¨
2£®Í¬²½¿é£¬Ê¾Àý´úÂëÈçÏ£º
public void method(SomeObject so) {
synchronized(so)
{
//…..
}
}
Õâʱ£¬Ëø¾ÍÊÇsoÕâ¸ö¶ÔÏó£¬ËÄõ½Õâ¸öËøË¾ÍÄܹ»ÔËÐÐËûËù¿ØÖƵÄÄǶδúÂë¡£µ±ÓÐÒ»¸öÃ÷È·µÄ¶ÔÏó×÷ÎªËøÊ±£¬¾ÍÄܹ»ÕâÑùд³Ìʽ£¬µ«µ±Ã»ÓÐÃ÷È·µÄ¶ÔÏó×÷ÎªËø£¬Ö»ÊÇÏëÈÃÒ»¶Î´úÂëͬ²½Ê±£¬Äܹ»´´½¨Ò»¸öÌØ±ðµÄinstance±äÁ¿£¨Ëû
Ïà¹ØÎĵµ£º
Java ÖеĶѺÍÕ»
Java°ÑÄÚ´æ»®·Ö³ÉÁ½ÖÖ£ºÒ»ÖÖÊÇÕ»Äڴ棬һÖÖÊǶÑÄÚ´æ¡£
ÔÚº¯ÊýÖж¨ÒåµÄһЩ»ù±¾ÀàÐ͵ıäÁ¿ºÍ¶ÔÏóµÄÒýÓñäÁ¿¶¼ÔÚº¯ÊýµÄÕ»ÄÚ´æ
ÖзÖÅä
¡£
µ±ÔÚÒ»¶Î´úÂë¿é¶¨ÒåÒ»¸ö±äÁ¿Ê±£¬Java¾ÍÔÚÕ»ÖÐΪÕâ¸ö±äÁ¿·ÖÅäÄÚ´æ¿Õ¼ä£¬µ±³¬¹ý±äÁ¿µÄ×÷ÓÃÓòºó£¬Java»á×Ô¶¯ÊͷŵôΪ¸Ã±äÁ¿Ëù·ÖÅäµÄÄÚ´æ¿Õ¼ä£¬
¸ÃÄÚ´æ¿Õ¼ä¿ÉÒÔÁ¢¼´± ......
instanceofÊÇJavaµÄÒ»¸ö¶þÔª²Ù×÷·û£¬ºÍ==£¬>£¬<ÊÇͬһÀà¶«¶«¡£ÓÉÓÚËüÊÇÓÉ×Öĸ×é³ÉµÄ£¬ËùÒÔÒ²ÊÇJavaµÄ±£Áô¹Ø¼ü×Ö¡£ËüµÄ×÷ÓÃÊDzâÊÔËü×ó±ßµÄ¶ÔÏóÊÇ·ñÊÇËüÓұߵÄÀàµÄʵÀý£¬·µ»ØbooleanÀàÐ͵ÄÊý¾Ý¡£¾Ù¸öÀý×Ó£º
¡¡¡¡String s = "I AM an Object!";
¡¡¡¡boolean isObject = s instanceof Object;
¡¡¡¡ÎÒÃÇÉùÃ÷ÁËÒ»¸öStrin ......
±¾ÎIJûÊöÁËÔõôʹÓÃDBMS´æ´¢¹ý³Ì¡£ÎÒ²ûÊöÁËʹÓô洢¹ý³ÌµÄ»ù±¾µÄºÍ¸ß¼¶ÌØÐÔ£¬±ÈÈç·µ»ØResultSet¡£±¾ÎļÙÉèÄã¶ÔDBMSºÍJDBCÒѾ·Ç³£ÊìϤ£¬Ò²¼ÙÉèÄãÄܹ»ºÁÎÞÕϰµØÔĶÁÆäËüÓïÑÔд³ÉµÄ´úÂ루¼´²»ÊÇJavaµÄÓïÑÔ£©£¬µ«ÊÇ£¬²¢²»ÒªÇóÄãÓÐÈκδ洢¹ý³ÌµÄ±à³Ì¾Àú¡£
´æ´¢¹ý³ÌÊÇÖ¸±£´æÔÚÊý¾Ý¿â²¢ÔÚÊý¾Ý¿â¶ËÖ´ÐеijÌÐò¡£Äã¿ÉÒÔʹÓÃÌØÊâ ......
Java ±ê×¼Óë¹æ·¶
±¾À¸Ä¿ÌṩÁË´óÁ¿µÄ Java ¼¼Êõ±ê×¼Óë¹æ·¶µÄ¼ò½é¡¢¹Ù·½ÍøÖ·ÒÔ¼° developerWorks ÍøÕ¾ÉÏÏà¹ØµÄ¼¼Êõ×ÊÔ´¡£Í¨¹ý±¾À¸Ä¿£¬Äú²»µ«¿ÉÒÔÁ˽⵱ǰ Java ÉçÇøÖ÷ÒªµÄ¼¼Êõ±ê×¼ºÍ¹æ·¶£¬»¹¿ÉÒÔͨ¹ý²é¿´Ïà¹ØµÄ¼¼ÊõÎÄÕºͽ̳̽øÐиüÉîÈëµÄѧϰ£¬´Ó¶ø¸üºÃµØÎªÊµ¼ÊµÄ Java ÏîÄ¿½øÐм¼ÊõÑ¡ÐÍ¡£
A B C D E F ......
ÕâÊÇÒ»¸öJava°æµÄÊÀ½çʱÖÓʾÀý£¬ÒÆÖ²×ÔGerrit´´½¨µÄͬÃûSwingÓ¦Óã¨http://www.jug-muenster.de/swing-worldclock-427
£©£¬ÐèÒªÔËÐÐÔÚJRE1.5»òÒÔÉÏ»·¾³µ±ÖС£
ÒÆÖ²´ËʾÀýÖ÷ÒªÊÇÒòΪǰһÕóÒÆÖ²¹ýGerritµÄswingÔ×ÓÖÓʾÀý£¬ËùνºÃʳÉË«£¬Õâ¸öÊÀ½çʱÖÓµÄʾÀý×ÔÈ»²»ÄܷŹý£¨»°ËµGerritΪʲôÄÇôϲ»¶×öʱÖÓ£¿…&hellip ......