JavaÖÐÏ̵߳ĸ߼¶Ó¦ÓÃ
Ò»¡¢Java¶àÏ̻߳¥³â¼°Í¬²½¿ØÖƺÍͨÐÅ
¶à¸öÏ̵߳ÄÖ´ÐÐÊDz¢·¢µÄ£¬Ò²¾ÍÊÇÔÚÂß¼Éϓͬʱ”£¬¶ø²»¹ÜÊÇ·ñÊÇÎïÀíÉϵēͬʱ”¡£Èç¹ûϵͳֻÓÐÒ»¸öCPU£¬ÄÇ̫;ÕýµÄ“ͬʱ”ÊDz»¿ÉÄܵ쬵«ÊÇÓÉÓÚCPUµÄËٶȷdz£¿ì£¬Óû§¸Ð¾õ²»µ½ÆäÖеÄÇø±ð£¬Òò´ËÎÒÃÇÒ²²»ÓùØÐÄËü£¬Ö»ÐèÒªÉèÏë¸÷¸öÏß³ÌÊÇͬʱִÐм´¿É¡£
¶àÏ̺߳ʹ«Í³µÄµ¥Ïß³ÌÔÚ³ÌÐòÉè¼ÆÉÏ×î´óµÄÇø±ðÔÚÓÚ£¬ÓÉÓÚ¸÷¸öÏ̵߳ĿØÖÆÁ÷±Ë´Ë¶ÀÁ¢£¬Ê¹µÃ¸÷¸öÏß³ÌÖ®¼äµÄ´úÂëÊÇÂÒÐòÖ´Ðеģ¬ÓÉ´Ë´øÀ´µÄÏ̵߳÷¶È£¬Í¬²½µÈÎÊÌâ¡£
1¡¢Ï̻߳¥³âÓëÏß³Ìͬ²½
Ï̻߳¥³â£º²¢·¢Ö´ÐеĶà¸öÏß³ÌÔÚijһʱ¼äÄÚÖ»ÔÊÐíÒ»¸öÏß³ÌÔÚÖ´ÐÐÒÔ·ÃÎÊÊý¾Ý¡£
Ïß³Ìͬ²½£º²¢·¢Ö´ÐеĶà¸öÏß³ÌÖ®¼ä»¥Ïà·¢ËÍÏûÏ¢½øÐкÏ×÷¡¢»¥ÏàµÈ´ý£¬°´Ò»¶¨ËÙ¶ÈÅäºÏÖ´ÐС£
2¡¢Ï̻߳¥³â
ÓÉÓÚͬһ½ø³ÌµÄ¶à¸öÏ̹߳²ÏíͬһƬ´æ´¢¿Õ¼ä£¬ÔÚ´øÀ´·½±ãµÄͬʱ£¬Ò²´øÀ´ÁË·ÃÎʳåÍ»Õâ¸öÑÏÖØµÄÎÊÌâ¡£JavaÓïÑÔÌṩÁËרÃÅ»úÖÆÒÔ½â¾öÕâÖÖ³åÍ»£¬ÓÐЧ±ÜÃâÁËͬһ¸öÊý¾Ý¶ÔÏó±»¶à¸öÏß³Ìͬʱ·ÃÎÊ¡£
£¨1£©Ó¦Óõij¡ºÏ£º
µ±Á½¸ö»ò¶à¸öÏß³Ìͬʱ·ÃÎʹ²ÏíÊý¾Ýʱ£¬¿ÉÄܶÔÊý¾Ý½øÐжÁ¡¢Ð´¡¢Ð޸ġ¢É¾³ýµÈ²Ù×÷ʱ£¬Ó¦±£Ö¤Í¬Ê±Ö»ÓÐÒ»¸öÏ̷߳ÃÎʹ²ÏíÊý¾Ý¡£
£¨2£©Ï̻߳¥³âµÄʵÏÖ»úÖÆ
¢Ù ¼àÊÓÆ÷£¨Í¬²½Ëø¶¨£©£º
Ï߳̽øÈë¼àÊÓÆ÷ºóÆäËüÏß³ÌÔò²»ÄÜÔÙ½øÈë¼àÊÓÆ÷£¬Ö±µ½±»Ëø¶¨µÄÏß³ÌÍ˳ö¼àÊÓÆ÷£¬ÏÂÒ»¸öÏ̲߳ÅÄܽøÈë¼àÊÓÆ÷±»Ö´ÐС£
ÈçºÎ²úÉú¼àÊÓÆ÷£¨Í¬²½»¥³â·½·¨£©£ºÍ¨¹ýÔÚ±»¶à¸öÏß³ÌËù¹²ÏíµÄ·½·¨Ç°¼ÓÉÏsynchronized¹Ø¼ü×Ö¶¨Òå³öͬ²½»¥³â·½·¨£¬Ã¿Ò»¸öÓµÓÐsynchronized·½·¨µÄ¶ÔÏ󶼺¬ÓÐÒ»¸ö¶ÀÁ¢µÄ¼àÊÓÆ÷£¬Ö»ÓÐijһ¸öÏ̵߳Äsynchronized·½·¨Ö´ÐÐÍêºóÆäËüÏ̵߳Äsynchronized·½·¨²ÅÄܱ»Ö´ÐС£
public synchronized void myFun()
{
}
¢Ú ±à³ÌÒªµã£º
l Ó¦½«·ÃÎʹ²ÏíÊý¾ÝµÄ´úÂëÉè¼ÆÎªsynchronized·½·¨£»
l synchronized¿ÉÒÔÓÃÀ´ÏÞ¶¨Ò»¸ö·½·¨»òһС¶ÎÓï¾ä»òÕû¸öÀࣨ¿É½«ÀàµÄ¾²Ì¬³ÉÔ±º¯ÊýÉùÃ÷Ϊ synchronized £¬ÒÔ¿ØÖÆÆä¶ÔÀàµÄ¾²Ì¬³ÉÔ±±äÁ¿µÄ·ÃÎÊ£©£¬¼´Àà·½·¨£¬ÊµÀý·½·¨£¬Ò»¸ö·½·¨ÖеÄÈκδúÂë¿é¡£
l ÓÉÓÚ¿ÉÒÔͨ¹ý private ¹Ø¼ü×ÖÀ´±£Ö¤Êý¾Ý¶ÔÏóÖ»Äܱ»·½·¨·ÃÎÊ£¬ËùÒÔÖ»ÐèÕë¶Ô·½·¨Ìá³öÒ»Ì×ͬ²½Ëø¶¨»úÖÆ¡£Í¨¹ýsynchronized ·½·¨À´¿ØÖƶÔÀàÖеijÉÔ±±äÁ¿£¨¹²ÏíÊý¾Ý£©µÄ·ÃÎÊ¡£
£¨3£©synchronized ¹Ø¼ü×Ö
ÔÚÓÐЩӦÓÃÖУ¬¿ÉÄÜ»á³öÏÖÁ½¸öÏ̷߳ÃÎÊͬһ¸ö¶ÔÏóµÄÇé¿ö¡£µ«ÊÇ£¬ÔÚ´ó¶àÊýÓÐÓõijÌÐòÖУ¬Ïß³ÌÖ®¼äͨ³£ÓÐÐÅÏ
Ïà¹ØÎĵµ£º
ÀàµÄ³õʼ»¯ºÍ¶ÔÏó³õʼ»¯ÊÇ JVM ¹ÜÀíµÄÀàÐÍÉúÃüÖÜÆÚÖзdz£ÖØÒªµÄÁ½¸ö»·½Ú£¬Google ÁËÒ»±éÍøÂ磬ÓйØÀà×°ÔØ»úÖÆµÄÎÄÕµ¹ÊDz»ÉÙ£¬È»¶øÀà³õʼ»¯ºÍ¶ÔÏó³õʼ»¯µÄÎÄÕ²¢²»¶à£¬ÌرðÊÇ´Ó×Ö½ÚÂëºÍ JVM ²ã´ÎÀ´·ÖÎöµÄÎÄÕ¸üÊÇÏÊÓÐËù¼û¡£
±¾ÎÄÖ÷Òª¶ÔÀàºÍ¶ÔÏó³õʼ»¯È«¹ý³Ì½øÐзÖÎö£¬Í¨¹ýÒ»¸öʵ¼ÊÎÊÌâÒýÈ룬½«Ô´´úÂëת»»³É JVM ×Ö½ÚÂëºó£¬ ......
VolatileÐÞÊεijÉÔ±±äÁ¿ÔÚÿ´Î±»Ï̷߳ÃÎÊʱ£¬¶¼Ç¿ÆÈ´Ó¹²ÏíÄÚ´æÖÐÖØ¶Á¸Ã³ÉÔ±±äÁ¿µÄÖµ¡£¶øÇÒ£¬µ±³ÉÔ±±äÁ¿·¢Éú±ä»¯Ê±£¬Ç¿ÆÈÏ߳̽«±ä»¯Öµ»ØÐ´µ½¹²ÏíÄÚ´æ¡£ÕâÑùÔÚÈκÎʱ¿Ì£¬Á½¸ö²»Í¬µÄÏß³Ì×ÜÊÇ¿´µ½Ä³¸ö³ÉÔ±±äÁ¿µÄͬһ¸öÖµ¡£
JavaÓïÑԹ淶ÖÐÖ¸³ö£ºÎªÁË»ñµÃ×î¼ÑËÙ¶È£¬ÔÊÐíÏ̱߳£´æ¹²Ïí³ÉÔ±±äÁ¿µÄ˽Óп½±´£¬¶øÇÒÖ»µ±Ï߳̽øÈë»òÕßÀë ......
1¡¢Óï»ãµ¥ÔªµÄ×é³É£º
1£©¾¹ý·ÖÎö²úÉúµÄ»ù±¾µ¥Ôª¡£ÔÚË÷Òýʱ£¬LuceneʹÓÃÌØ¶¨µÄ·ÖÎöÆ÷À´´¦ÀíÐèÒª±»Óï»ãµ¥Ôª»¯µÄÖ¸¶¨Óò£¬²¢½«Ã¿¸öÓï»ãµ¥ÔªÒÔÏîµÄÐÎʽдÈëË÷Òý¡£
2£©ÆðµãÆ«ÒÆÁ¿ÊÇÖ¸Óï»ãµ¥ÔªÎı¾µÄÆðʼ×Ö·ûÔÚÔ¹ãÎ÷ÖеÄλÖ㬶øÖÕµãµÄÆ«ÒÆÁ¿Ôò±íʾÓï»ãµ¥ÔªÖÕÖ¹×Ö·ûµÄÏÂÒ»¸öλÖá£
3£©Îı¾±»Óï»ãµ¥Ôª»¯ºó£¬Ïà¶ÔÓÚǰһÓï»ãµ¥ ......
ºÃ¾ÃÁË£¬¶¼ÏëÏòѧϰJAVAµÄÐÂÈËдµã¶«Î÷£¬ÒòΪÎÒʵÔÚ¿´²»ÏÂÈ¥ÁË£¬¿´²»ÏÂÈ¥ºÜ¶àÎóµ¼JAVAѧϰÕߵĹ۵㣬±é¼°ÌìÏ£¡ÍøÂçÈúõĶ«Î÷Á÷ÐУ¬¿ÉÊÇÍùÍùÒ²ÈôíµÄ¶«Î÷³öÏֵĴÎÊý¶àÁ˱äµÄºÃÏñÕýÈ·ÁË£¬ÈýÈ˳ɻ¢£¬Ö¸Â¹ÎªÂíËÆºõÔÚÍøÂçÀï¸ü¼ÓÈÝÒ×·¢Éú£¬ºÃÁË·Ï»°²»Ëµ£¬Çë¿´ÎÒϸϸÏòÄãµÀÀ´¡£
ÃØÃÜÒ»£¬Ñ§Ï°JAVAºÃδ±Ø¿ÉÒÔ ......
ÏÈÌù³öÊä³ö£º
TreeSet Integer
»áºÏΪ£º[-Ò», Áã, Áù, °Ë, 66]
¸Ä¶¯tempΪ£º55
¾ÛºÏΪ£º[-Ò», Áã, Áù, °Ë, 66]¾ÛºÏÉÐδÓÉÓÚtempµÄ¸Ä±ä¶ø¸Ä±ä,˵Ã÷java¶Ô¸ù±¾²¿Àà×öÁË·ÇÒ»°ã´¦ÖÃ
-----------------------------
TreeSet ×Ô¶¨ÒåµÄInt
»áºÏΪ£º[Áù, 66]
treeSet.contains(Áù)= true
treeSet.contains(66)= t ......