Java servlet中的线程安全数据结构

Java servlet中的线程安全数据结构,java,multithreading,servlets,thread-safety,jersey,Java,Multithreading,Servlets,Thread Safety,Jersey,我在servlet中有以下线程,它在其构造函数中接受ConcurrentHashMap RequestThread(ConcurrentHashMap<String, String[]> sentRequests, ServletContext context) { this.sentRequests = sentRequests; this.context = context; } RequestThread(ConcurrentHashM

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

RequestThread(ConcurrentHashMap<String, String[]> sentRequests, ServletContext context) {
        this.sentRequests = sentRequests;
        this.context = context;
    }
RequestThread(ConcurrentHashMap sentRequests,ServletContext上下文){
this.sentRequests=sentRequests;
this.context=上下文;
}
多个用户访问ConcurrentHashMap。它应该在所有类中使用


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

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

一种支持完全并发的检索和调整的哈希表 更新的预期并发性。这个类遵循相同的函数 规范为哈希表,并包括方法的版本 对应于哈希表的每个方法。然而,即使所有 操作是线程安全的,检索操作不需要 锁定,并且不支持在中锁定整个表 阻止所有访问的方法。此类可与完全互操作 程序中的哈希表依赖于它的线程安全性,但不依赖于它的 同步细节


我会使用一个缓存库来处理整个应用程序中的对象,而不是试图重新发明轮子。一些示例是ehcache和infinispan。请检查以下内容: