我有哈希表的动态数组
我可以单独为每个使用synchronized吗? 像synchronized(array [1]){code ..},synchronized(array [2]){code ..}
由于
答案 0 :(得分:3)
您当然可以在数组写入中的特定位置同步对象:
synchronized (arr[x]) {
...
}
但是,请务必确保您了解这是否正在按照您的意愿行事。
这将锁定arr [x]引用的特定对象。但是,就访问数组本身而言,它不会为您带来任何线程安全性 - 换句话说,例如:
我也倾向于同意akappa - 你所做的事情听起来有点不寻常,而且将你的问题改为“为了做X我需要什么数据结构”而不是假设一个数组可能更好从一开始就是一个合适的哈希映射?
答案 1 :(得分:2)
当然,如果可以的话,最好使用concurrent map操作符concurrent skip list来解决吞吐量问题。
顺便说一句,如果您向我们提供一些背景信息,我们可以建议您(可能)更好的数据组织和结构。