- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的代码使用以下内容:
public class Obj{
public String someOperation(){...}
};
public class ClassA{
private Map<Integer, Object> m_MsgHash;
public boolean init()
{
m_MsgHash = Collections.synchronizedMap(new LinkedHashMap<Integer, Object>(1001, 1.0F, true));
}
private Object fetchFromHash(int Id)
{
return m_MsgHash.get(Id);
}
public void HandleMsg(int Id)
{
Object obj = fetchFromHash(Id);
// do some operation on obj needs to be synchronized ?
//synchronized (m_MsgHash) {
obj.someOperation();
//}
}
}
我从Java Doc了解到一旦迭代我的 m_MsgHash
我必须使用 synchronized
关键字。但我的问题是,当使用从 map 中获取的对象
时,我是否需要使用同步
?
最佳答案
对于synchronizedMap 结果的简单操作(例如 get),不需要“synchronized”。如果 obj 引用的对象本身是从多个线程访问的,并且至少被其中一个线程修改,则需要在同一个对象上同步对其的所有访问,否则保证多线程的正确性。
关于java synchronizedMap 对 map 对象的操作应该是同步的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14561254/
在Collections类中,SynchronizedMap类有两个构造函数。一个只需要一个 map 实例,另一个则需要一个 map 和一个 mutex。 SynchronizedMap(Ma
我有一个单例类,它有一个可以被多个线程同时访问的映射。有人可以检查下面的代码并告诉我它的线程安全吗?(注意:我不打算使用ConcurrentHashMap,而且很少调用printMap方法。)
我试图理解 SynchronizedMap 并运行了以下代码。我得到以下输出,但有一个异常(exception)。根据我的理解,当线程仍在映射上执行写入或线程处于 sleep 状态时,get() 方法
来自 javadocs Map m = Collections.synchronizedMap(new HashMap()); ... Set s = m.keySet(); //
什么时候应该更喜欢 Akka TransactionalMap与 SynchronizedMap 混合在一起的常规不可变映射反之亦然? (或者我在这里比较苹果和橙子?) 最佳答案 当您想要进行交易时,
假设我有一个类: public class MyMap implements Map, V> { ... } 我希望能够对其强制同步。一种方法是在内部同步方法(可能使用同步关键字),但如果我打算将
如果我同步 SynchronizedMap 会影响性能吗? 例如: private static Map intMap= Collections.synchronizedMap(new HashMap
如果我创建 map Map map=new HashMap(40,.75f); 通过以下两种不同的方式进行同步 Collections.synchronizedMap(map) :- which is
我想在 Collections.synchronizedMap 类型的 map 周围有第二个锁。我怎样才能拥有它? 最佳答案 尚不清楚为什么要这样做,但基本上是这样的: private Map map
当我将 Collections.synchronizedMap( ) 转换为 HashMap 时,它返回类转换异常,但是当我将 Map 转换为 HashMap 时,它工作正常。 根据我的理解 Coll
我的代码使用以下内容: public class Obj{ public String someOperation(){...} }; public class ClassA{ priva
在 Collections javadoc 中,它被提到如下.. 当遍历其任何 Collection View 时,用户必须在返回的 map 上手动同步: Map m = Collections.sy
今天我在面试中问了一个问题。问题是 Collections.synchronizedMap() 是用于同步 map,默认情况下它不像 hashmap 那样是线程安全的。他的问题是我们可以在这个方法中传
这个问题已经有答案了: Difference between Hashtable and Collections.synchronizedMap(HashMap) (6 个回答) 已关闭 9 年前。
Collections.synchronizedMap() 和所有方法同步的 HashMap 的包装器之间有什么区别。我没有看到任何区别,因为 Collections.synchronizedMap(
我指的是问题 here并使用作者代码示例,现在我的问题是 为什么作者使用synchronized(synchronizedMap),真的有必要吗,因为synchronizedMap总是确保没有两个线程
我没有看到使用 Collections.synchronizedList/synchronizedMap 的任何真正值(value),而且根据文档,我们需要在迭代期间同步列表/映射,这对性能不利。 我
我有一个Map,它将由多个线程同时修改。 Java API 中似乎存在三种不同的同步 Map 实现: 哈希表 Collections.synchronizedMap( map ) Concurrent
我在多线程代码之外创建了一个 HashMap 。以后这个 hasmap 不会有任何变化。 此后,我将启动两个线程,它们都将从该 HashMap 中读取(是的,仅读取操作)。如果线程1正在读取我的has
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
我是一名优秀的程序员,十分优秀!