『壹』 java list是不是線程安全的
直接用Vector就可以了,它是線程安全的。ArrayList list=new ArrayList();就需要鎖了,涉及同步,可以參考網上買票例子做。
『貳』 java實現線程安全的隊列
PrintPreviewDialog pPDlg;
exec_prefix='NONE'PACKAGE='libevent'
PACKAGE_BUGREPORT=''
PACKAGE_NAME=''
PACKAGE_STRING=''
PACKAGE_TARNAME=''
PACKAGE_URL=''
PACKAGE_VERSION=''
PATH_SEPARATOR=':'
『叄』 Java的List如何實現線程安全
解決這個問題通常有兩種方法(個人認為)
一:使用synchronized關鍵字,這個大家應該都很熟悉了,不解釋了;
二:使用Collections.synchronizedList();使用方法如下:
假如你創建的代碼如下:List<Map<String,Object>> data=new ArrayList<Map<String,Object>>();
那麼為了解決這個線程安全問題你可以這么使用Collections.synchronizedList(),如:
List<Map<String,Object>> data=Collections.synchronizedList(new ArrayList<Map<String,Object>>());
其他的都沒變,使用的方法也幾乎與ArrayList一樣,大家可以參考下api文檔;
額外說下 ArrayList與LinkedList;這兩個都是介面List下的一個實現,用法都一樣,但用的場所的有點不同,ArrayList適合於進行大量的隨機訪問的情況下使用,LinkedList適合在表中進行插入、刪除時使用,二者都是非線程安全,解決方法同上(為了避免線程安全,以上採取的方法,特別是第二種,其實是非常損耗性能的)。
『肆』 java線程安全的容器有哪些
1、你是指並發操作時的線程安全嗎?
2、容器中線程安全的如:vectory,hashtable,非線程安全的如:hashmap,arrylist等。
3、對於原定義非線程的容器如:hashmap,arraylist可以使用Collections中的synchronizedList(list),synchronizedMap(map),synchronizedSet(set)等方法來使原來非線程安全的容器編程線程安全。
4、另一方面容器中使用泛型:容器<類型>也是使容器安全的一種方式。