Java Concurrent°üѧϰ֮ConcurrentHashMap
ÔÚJava concurrent°üÖÐÓÐÕâôһ¸ö½Ó¿Ú£ºConcurrentMap¡£
ConcurrentMap¼Ì³Ð×ÔMap£¬²¢Ìí¼ÓÁ˼¸¸öеÄÔ×Ó·½·¨£º putIfAbsent¡¢remove¡¢replace
Æä·½·¨ÕªÒªÈçÏ£º
V
putIfAbsent(K key, V value)
Èç¹ûÖ¸¶¨¼üÒѾ²»ÔÙÓëij¸öÖµÏà¹ØÁª£¬Ôò½«ËüÓë¸ø¶¨Öµ¹ØÁª¡£
boolean
remove(Object key, Object value)
Ö»ÓÐĿǰ½«¼üµÄÌõĿӳÉäµ½¸ø¶¨ÖµÊ±£¬²ÅÒÆ³ý¸Ã¼üµÄÌõÄ¿¡£
V
replace(K key, V value)
Ö»ÓÐĿǰ½«¼üµÄÌõĿӳÉ䵽ijһֵʱ£¬²ÅÌæ»»¸Ã¼üµÄÌõÄ¿¡£
boolean
replace(K key, V oldValue, V newValue)
Ö»ÓÐĿǰ½«¼üµÄÌõĿӳÉäµ½¸ø¶¨ÖµÊ±£¬²ÅÌæ»»¸Ã¼üµÄÌõÄ¿¡£
ConcurrentHashMapÀàÊÇConcurrentMap½Ó¿ÚµÄÒ»¸öʵÏÖÀà¡£
Ö§³Ö¼ìË÷µÄÍêÈ«²¢·¢ºÍ¸üеÄËùÆÚÍû¿Éµ÷Õû²¢·¢µÄ¹þÏ£±í¡£
´ËÀà×ñÊØÓë Hashtable ÏàͬµÄ¹¦Äܹ淶£¬²¢ÇÒ°üÀ¨¶ÔÓ¦ÓÚ Hashtable µÄÿ¸ö·½·¨µÄ·½·¨°æ±¾¡£
²»¹ý£¬¾¡¹ÜËùÓвÙ×÷¶¼ÊÇḬ̈߳²È«µÄ£¬µ«¼ìË÷²Ù×÷²» ±ØËø¶¨£¬²¢ÇÒ²» Ö§³ÖÒÔijÖÖ·ÀÖ¹ËùÓзÃÎʵķ½Ê½Ëø¶¨Õû¸ö±í¡£
´ËÀà¿ÉÒÔͨ¹ý³ÌÐòÍêÈ«Óë Hashtable ½øÐл¥²Ù×÷£¬ÕâÈ¡¾öÓÚÆäḬ̈߳²È«£¬¶øÓëÆäͬ²½Ï¸½ÚÎ޹ء£
¼ìË÷²Ù×÷£¨°üÀ¨ get£©Í¨³£²»»áÊÜ×èÈû£¬Òò´Ë£¬¿ÉÄÜÓë¸üвÙ×÷½»µü£¨°üÀ¨ put ºÍ remove£©¡£
¼ìË÷»áÓ°Ïì×î½üÍê³ÉµÄ ¸üвÙ×÷µÄ½á¹û¡£
¶ÔÓÚһЩ¾ÛºÏ²Ù×÷£¬±ÈÈç putAll ºÍ clear£¬²¢·¢¼ìË÷¿ÉÄÜÖ»Ó°ÏìijЩÌõÄ¿µÄ²åÈëºÍÒÆ³ý¡£
ÀàËÆµØ£¬ÔÚ´´½¨µü´úÆ÷/ö¾Ùʱ»ò×Ô´ËÖ®ºó£¬Iterators ºÍ Enumerations ·µ»ØÔÚijһʱ¼äµãÉÏÓ°Ïì¹þÏ£±í״̬µÄÔªËØ¡£ËüÃDz»»á Å׳ö ConcurrentModificationException¡£²»¹ý£¬µü´úÆ÷±»Éè¼Æ³Éÿ´Î½öÓÉÒ»¸öÏß³ÌʹÓá£
ÕâÔÊÐíͨ¹ý¿ÉÑ¡µÄ concurrencyLevel ¹¹Ôì·½·¨²ÎÊý£¨Ä¬ÈÏֵΪ 16£©À´Òýµ¼¸üвÙ×÷Ö®¼äµÄ²¢·¢£¬¸Ã²ÎÊýÓÃ×÷ÄÚ²¿µ÷Õû´óСµÄÒ»¸öÌáʾ¡£±íÊÇÔÚÄÚ²¿½øÐзÖÇøµÄ£¬ÊÔͼÔÊÐíָʾÎÞÕùÓò¢·¢¸üеÄÊýÁ¿¡£ÒòΪ¹þÏ£±íÖеÄλÖûù±¾ÉÏÊÇËæÒâµÄ£¬ËùÒÔʵ¼ÊµÄ²¢·¢½«¸÷²»Ïàͬ¡£ÀíÏëÇé¿öÏ£¬Ó¦¸ÃÑ¡ÔñÒ»¸ö¾¡¿ÉÄÜ¶àµØÈÝÄɲ¢·¢Ð޸ĸñíµÄÏ̵߳ÄÖµ¡£Ê¹ÓÃÒ»¸ö±ÈËùÐèÒªµÄÖµ¸ßºÜ¶àµÄÖµ¿ÉÄÜ»áÀ˷ѿռäºÍʱ¼ä£¬¶øÊ¹ÓÃÒ»¸öÏÔÈ»µÍ
Ïà¹ØÎĵµ£º
1.Listת»»³ÉΪÊý×é¡££¨ÕâÀïµÄListÊÇʵÌåÊÇArrayList)
¡¡¡¡µ÷ÓÃArrayListµÄtoArray·½·¨¡£
¡¡¡¡toArray
¡¡¡¡public <T> T[] toArray(T[] a)·µ»ØÒ»¸ö°´ÕÕÕýÈ·µÄ˳Ðò°üº¬´ËÁбíÖÐËùÓÐÔªËØµÄÊý×飻·µ»ØÊý×éµÄÔËÐÐʱÀàÐ;ÍÊÇÖ¸¶¨Êý×éµÄÔËÐÐʱÀàÐÍ¡£Èç¹ûÁбíÄÜ·ÅÈëÖ¸¶¨µÄÊý×飬Ôò·µ»Ø·ÅÈë´ËÁбíÔªËØµÄÊý×é¡£·ñÔò£¬½«¸ù¾ ......
public class Foo {
static void operate(StringBuffer x,StringBuffer y){
x.append(y);
y=x;
}
public static void main(String args[]){
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
& ......
×î½üдÔ˼۵Äϵͳ,дµÃºÃÀÛ°¡,²»¹ý²î²»¶à½Ó½üÍê³ÉÁË.µ«±àÂëµÄÎÊÌâÒ»Ö±¶¼ÊÇËÆ¶®·Ç¶®µÄ.
Ö»ºÃÒ»µãµãÈ¥ËÑË÷javaºÍhtmlµÄ±àÂëÎÊÌâ.ºÃ·³,µ½×îºó,ÎÊÌâÊǽâ¾öÁË,µ«²»ÊÇ×îÍêÕûµÄ´¦Àí·½·¨.Ï£ÍûÒÔºó¿ÉÒÔ´¦ÀíºÃ.
ÔÚÒ»¸östruts2µÄ·µ»ØÌáʾµÄ×Ö·û´®µ½Ò³ÃæÖÐ.ÎÊÌâ¾ÍÊdzöÔÚÕâ×Ö·û´®ÖÐÓÐÍøÒ³µÄ»»Ð ......
Ò»¡¢new
¡¡¡¡Ê¹ÓÃjavaµÄ¹Ø¼ü×ÖnewÀ´´´½¨¶ÔÏóʵÀý¡£¹¹Ô캯ÊýÁ´ÖеÄËùÓй¹Ô캯Êý¶¼»á±»×Ô¶¯µ÷Óá£
Java´úÂ룺
¡¡¡¡ CreateInstance instance = new CreateInstance ();
¶þ¡¢clone
¹¹Ô캯Êý²»±»×Ô¶¯µ÷Óá£
¡¡¡¡Java´úÂ룺
......
ÊÂÎñ´¦Àí×ܽá
À´Ô´£ºhttp://space.itpub.net/13956325/viewspace-598381
Ò»¡¢Ê²Ã´ÊÇJava ÊÂÎñ
ͨ³£µÄ¹ÛÄîÈÏΪ£¬ÊÂÎñ½öÓëÊý¾Ý¿â Ïà¹Ø¡£
Ê Îñ±ØÐë·þ´ÓISO/IECËùÖÆ¶¨µÄACIDÔÔò¡£ACIDÊÇÔ×ÓÐÔ£¨atomicity£©¡¢Ò»ÖÂÐÔ£¨consistency£©¡¢¸ôÀëÐÔ £¨isolation£©ºÍ³Ö¾ÃÐÔ£¨durability£©µÄËõд¡£ÊÂÎñµÄÔ×ÓÐÔ±íʾÊÂÎñ ......