0

我在 servlet 中有以下线程,它在其构造函数中接受 ConcurrentHashMap。

RequestThread(ConcurrentHashMap<String, String[]> sentRequests, ServletContext context) {
        this.sentRequests = sentRequests;
        this.context = context;
    }

多个用户访问 ConcurrentHashMap。它应该在所有类中使用。

以这种方式传递 ConcurrentHashMap是线程安全的还是有更好的方法呢?

4

1 回答 1

0

在这种情况下,ConcurrentHashMap线程安全很重要。你将如何传递它并不重要。并根据文档

支持检索的完全并发和可调整的预期更新并发的哈希表。此类遵循与 Hashtable 相同的功能规范,并包含与 Hashtable 的每个方法对应的方法版本。但是,即使所有操作都是线程安全的,检索操作也不需要锁定,并且不支持以阻止所有访问的方式锁定整个表。在依赖线程安全但不依赖同步细节的程序中,此类与 Hashtable 完全可互操作。

于 2013-11-06T14:28:01.117 回答