【发布时间】:2012-11-02 18:42:31
【问题描述】:
有许多线程在同一张地图上的元素上工作,每个线程都有一个代码,例如:
THREAD_1 works on an element with code "1234"
THREAD_2 works on an element with code "1234"
THREAD_3 works on an element with code "9876"
etc...
元素不是永久性的,即 THREAD_1 可能会删除元素“1234”然后重新插入。我想要的是,当 THREAD_1 正在处理元素“1234”(也将其删除)时,THREAD_2 必须等待。
有办法吗?
一种可能的解决方案可能是在 HashMap 中插入一个假元素,然后在该元素上使用“已同步”子句强制同步。你有什么想法? (很明显,如果线程使用相关代码删除了元素,该假元素也会保留在地图中)...
【问题讨论】:
标签: java synchronization locking synchronized