java API文档中 hashmap写着 "实现不是同步的" 线程是安全的 而hashtable “实现是同步的” 线程不安全
答案:2 悬赏:80
解决时间 2021-03-08 12:10
- 提问者网友:野性
- 2021-03-08 01:13
怎么理解。。
最佳答案
- 二级知识专家网友:年轻没有失败
- 2021-03-08 02:33
实现线程安全就是在类的方法里加上了synchronized
如果是多线程同时操作(读取或者修改重点是修改)一个数据 如果这个数据没有在设成synchronized的方法里的加 会造成更新丢失或者数据损坏 这会对你的程序有致命的影响
如果给方法加上synchronized 那这个方法里的数据就都会是线程安全的 不会造成更新丢失或者数据损坏 缺点是会带来额外的系统资源开销
说了这么多其实意思就是你要是写多线程程序就用hashmap 如果是单线程就用hashtable
如果是多线程同时操作(读取或者修改重点是修改)一个数据 如果这个数据没有在设成synchronized的方法里的加 会造成更新丢失或者数据损坏 这会对你的程序有致命的影响
如果给方法加上synchronized 那这个方法里的数据就都会是线程安全的 不会造成更新丢失或者数据损坏 缺点是会带来额外的系统资源开销
说了这么多其实意思就是你要是写多线程程序就用hashmap 如果是单线程就用hashtable
全部回答
- 1楼网友:眠于流年
- 2021-03-08 03:11
你首先要理解同步和不同步是什么意思!同步就是当一个线程访问时一个代码块,另外的线程就不能访问,一般由对象锁来控制。不同步就是很多线程可以对其同时访问。实现同步在java中可以给你要实现同步的代码块加对象锁即可。同步了肯定是安全的,就像上厕所,一个人进入了,其他人就进不去!不同步就是可以很多人可以一起去挤一个厕所,所以不安全。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯