首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >hashmap和hashtable的差异

hashmap和hashtable的差异
EN

Stack Overflow用户
提问于 2011-12-07 05:20:18
回答 4查看 2.8K关注 0票数 5

可能重复: HashMap和Hashtable之间的区别?

前几天我去面试,面试官问我在什么情况下使用hashmap而不是hashtable会有问题?意思是给出一个例子,其中hashtmap的使用将导致问题,但使用哈希表将解决问题。

他告诉我,运行代码的机器是单核的!!

我给了一个例子

代码语言:javascript
运行
复制
Time        Thread1            Thread 2
   t0    tb.put("a",1)       
   t1     tb.put("a",2)          int a = tb.get("a"); 

我告诉过,如果在t1中,如果t1和t2同时执行,那么就会导致问题。他说,由于它是一个单独的核心cpu,它永远不会并行执行2条语句。

谁能澄清一下,什么时候会有问题?有情况的例子吗?

编辑:我通过插入hashmap和hashtable发布了这个问题,我知道hashtable方法是同步的,而hashmap的方法不是同步的,我已经告诉他了

为了体验一下,我实现了following.And,代码从未崩溃过?我使用hashtable,但它仍然是A :)中的hashmap。)

代码语言:javascript
运行
复制
public class MyT extends Thread {

    HashMap<String,String > a = A.t;
    @Override
    public void run() {
        while (true) {
            a.put("a", "one");
            System.out.println(Thread.currentThread().getName());
        }
    }

    public static void main(String[] args) {
        MyT t1 = new MyT();
        t1.start();
        MyT t2 = new MyT();
        t2.start();
    }
}
EN

回答 4

Stack Overflow用户

发布于 2011-12-07 05:28:41

我认为你必须先做以下几件事,然后再问:

  1. 搜索堆栈溢出
  2. 谷歌搜索

以上两种方法得到的结果如下:

StackOverflow: HashMap和Hashtable的区别?

Google

HashMap和Hashtable有什么区别?

HashMap与HashTable的差异?我们能让hashmap同步吗?

希望有帮助:)

票数 3
EN

Stack Overflow用户

发布于 2011-12-07 05:25:36

嗯,仅仅因为它是单一的核心,并不意味着你不能有比赛的条件。有可能(可能吗?)这意味着您不会遇到内存可见性问题,但是您肯定可以在单个内核上运行多个线程,而且它们仍然可以被调度,这样您就可以获得争用条件。

票数 0
EN

Stack Overflow用户

发布于 2011-12-07 05:28:03

这里有一个很好的链接,您可以参考它:HashMap和Hashtable之间的区别?

我想知道他们是否像你所说的那样问你,因为他似乎想问,哪一个是线程安全的,哪个不是。

Hashtable是线程安全的,但是他为什么要问Hashtable的问题呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8410766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档