根據以下答案: 目前還不清楚:如果有任何問題,那麼concurrentMap上的synchronized結構會做什麼。即在同時映射的情況下,在同步(映射)與非同步之間有什麼區別。 我對解決方案的正確性或相信的好處不感興趣。只是對這個問題的回答: 問:同步映射上的同步和不同步上的區別是什麼?具體就性能而言..就足夠了。沒有更多請。
我只對發生什麼事情感興趣,沒有任何補充建議。在同步集合上進行同步 - >性能問題
我有一個理論問題,我有一點精神問題的解決: 假設我有一個Concurrent集合類say => ConcurrentHashMap map;
假設我有三個方法:
method1: synchronized(map){
doSomethingWithThemap(); //Assume put integers 1.. 1000000
}
method2:doSomethingWithThemap(); //Note it is not synchronized
method3:doSomethingElseWithThemap(); //Assume put integers 2000000.. 3000000
現在假設2度的TestCase:
- TestCase1:產卵兩個線程一個& B. A調用方法1和B調用方法3。
- TestCase2:產生兩個線程A'& B'。 '調用method2和B'調用method3。
從性能上看我希望TestCase2獲勝,因爲從我的理解,在TestCase1 B不能添加到地圖中,儘管同時,由於同步塊將保留在地圖上的鎖, TestCase2並不是這種情況。
我的單元測試不驗證這個假設。
問:我在這裏錯過了什麼。即給定同步集合上的同步塊是否會影響性能?
method1將100萬整數放入地圖中,method2做了什麼? – esej
非同步塊中完全一樣的東西。 –