我知道Hashtable是同步的,而HashMap则不是.
据我所知,同步意味着一个线程一次访问一个对象.
所以使用Hashtable时没有问题.但在我的项目中,我正在使用HashMap.我在很多地方都用过它.直到现在我没有遇到任何HashMap问题.
所以当同步概念进入图片时(即使用HashMap).
我可以在使用HashTable的所有地方使用HashMap吗?
我可以在使用HashMap的所有地方使用HashTable吗?
所以使用Hashtable时没有问题
不完全 - 在某些情况下,哈希表确实需要外部同步(例如在迭代时).
什么时候同步概念会出现在图片中(即使用HashMap)?
如果你有一个包含HashMap的类:
public class SomeClass {
private Map map = new HashMap();
}
Run Code Online (Sandbox Code Playgroud)
并且您map从多个线程访问时,可能会出现意外行为并应使用足够的同步.
只要您只从一个线程访问您的地图或它是方法中的局部变量,您就可以了.
我可以在使用HashTable的所有地方使用HashMap吗?
比照 上面:如果几个线程没有访问地图,则为yes.
我可以在使用HashMap的所有地方使用HashTable吗?
总是如此,尽管在性能方面可能效率较低.
| 归档时间: |
|
| 查看次数: |
2315 次 |
| 最近记录: |