关于静态List的高并发读写的线程安全问题
大家好,关于List<T>的线程安全论坛里讨论了很多,基本上都是针对怎么应用读写锁的操作发表的看法。我仔细思考了一下,有个特殊情况下的疑问想得到明确的答案,希望有大牛可以赐教。
假设在一个Web项目中有百万级别的用户,这些用户的登录账号和登录密码我们存储在一个静态的 List<UserInfo> 中,用来提供用户登录的快速响应。
那么,在高并发的情境下(假设用户频繁读取账号密码,修改密码)都会对该List作大量读写,但是这里每个用户读写的都是对应自己的那个UserInfo。按我的理解,List中保存的是该UserInfo的内存地址,只要我们不new一个新的UserInfo来替代当前对象,我们对这个UserInfo进行数据的修改都不影响List的本身结构,所以这样的读写是线程安全的。在这种情形下是不用对List进行读写锁定的。
我这样理解对吗???求赐教,最好有实例说明。
假设在一个Web项目中有百万级别的用户,这些用户的登录账号和登录密码我们存储在一个静态的 List<UserInfo> 中,用来提供用户登录的快速响应。
那么,在高并发的情境下(假设用户频繁读取账号密码,修改密码)都会对该List作大量读写,但是这里每个用户读写的都是对应自己的那个UserInfo。按我的理解,List中保存的是该UserInfo的内存地址,只要我们不new一个新的UserInfo来替代当前对象,我们对这个UserInfo进行数据的修改都不影响List的本身结构,所以这样的读写是线程安全的。在这种情形下是不用对List进行读写锁定的。
我这样理解对吗???求赐教,最好有实例说明。
...全文
相关推荐
Java 单例模式线程安全问题
主要介绍了Java 单例模式线程安全问题的相关资料,希望通过本文大家能了解掌握单例模式中线程安全的使用方法,需要的朋友可以参考下
MySQL 数据库如何解决高并发问题
主要介绍了MySQL 如何处理高并发,帮助大家更好的优化MySQL数据库,感兴趣的朋友可以了解下
Activity之间传递List数据
博客地址:http://blog.csdn.net/zhouhui520w/article/details/47803891
g++中的局部静态变量的初始化机制及线程安全
g++中的局部静态变量的初始化机制及线程安全
详解SimpleDateFormat的线程安全问题与解决方案
主要介绍了SimpleDateFormat的线程安全问题与解决方案,非常不错,具有参考借鉴价值,需要的朋友可以参考下


高性能WEB开发
