1)如果內部靜態Runnable
類在外部單例中修改了一個靜態的ConcurrentHashMap
,在它調用Callable
之後有可能會阻止它?我正在考慮通過多個可運行同時對地圖中的同一項進行修改的場景。多個runnables在外部單例中的靜態ThreadPoolExecutor
中運行。如果用作可調參數的包裝,如果它修改單例的靜態參數,那麼內部靜態是否可以在單例塊中運行?
2)如果我做了val = myCallable.call()
,那麼在可運行的相同Thread
中調用可調用函數嗎?它根據可調用的結果修改同時發生的映射。
我的錯誤,我正在使用ConcurrentHashMap。 – Saad
'ConcurrentHashMap'是非阻塞的。但是,如果您的線程都更新了地圖上的同一個鍵,則會遇到爭用。 –
我讀了一些關於concurrenthashmap的內容。它在各種鑰匙桶上使用32個鎖。所以我理解你關於爭用的觀點,如果它是同一個關鍵。在這種情況下,這些線程會根據到達時間排隊嗎?只是好奇。 – Saad