java hashset为什么线程不安全 看HashSet源码可以知道里面就是用HashMap来存储的,HashMap在并发下可能出现的问题:http://www.ticmy.com/?p=97 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 多线程操作几乎任何不带锁的类都是不安全的,要么你要自己上锁,要么类有完善的同步机制,不然就是不安全的至于具体的类为什么不安全你自己去看类实现源码给你打个比方,你应该能基本理解这种“不安全性”比如有一个冰箱类,作用和Set差不多,你可以向里面放东西,也可以从里面取东西但是“放东西”和“取东西”的动作不是一个时刻发生的事,而是一段时间内发生的事你要放东西,不是说瞬间就放好了,比如首先你要打开冰箱门,找到一个合适的位置,然后放进去,最后关门同样取东西,你要打开冰箱门,找到你要取的东西,然后拿出来,最后关门但是如果两个人,也就是两个线程,想同时操作冰箱,那就可能造成问题,比如一个人想放东西,刚把冰箱门打开,还在找位置,突然啪地一下门就被另外一个人关掉了,这时候你怎么隔着冰箱门将东西放进去? hashset其实就是用hashmap实现的。线程不安全集合的存在就是为了在不需要多线程的时候,追求速度的。 在控制台下编译执行package过后的java文件……怎么找到路径? GGJJ们帮帮忙 java指令控制打印机打印小票 谁能给指导一下,谢谢! 初学JAVA,做个什么程序来锻炼一下呢?请各位有经验的朋友提个建议! 关于java多线程的问题,用多线程导数据库日志总是丢些单条日志。 请教高手们! Dialog浮在TabPanel上的问题 没有工作经验怎么找工作? FlowLayout()是什么意思 socket中为什么ObjectOutputStream写了两次 而ObjectInputStream读了两次都是第一次写的内容啊 求大神啊 Hash求index的问题
至于具体的类为什么不安全你自己去看类实现源码
给你打个比方,你应该能基本理解这种“不安全性”
比如有一个冰箱类,作用和Set差不多,你可以向里面放东西,也可以从里面取东西
但是“放东西”和“取东西”的动作不是一个时刻发生的事,而是一段时间内发生的事
你要放东西,不是说瞬间就放好了,比如首先你要打开冰箱门,找到一个合适的位置,然后放进去,最后关门
同样取东西,你要打开冰箱门,找到你要取的东西,然后拿出来,最后关门
但是如果两个人,也就是两个线程,想同时操作冰箱,那就可能造成问题,
比如一个人想放东西,刚把冰箱门打开,还在找位置,突然啪地一下门就被另外一个人关掉了,这时候你怎么隔着冰箱门将东西放进去?