博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程安全总结
阅读量:4839 次
发布时间:2019-06-11

本文共 616 字,大约阅读时间需要 2 分钟。

1.线程安全

  就是指多个线程操作同一个对象时采用了加锁机制,只有在当前线程操作这个对象完毕之后,其他线程才能操作这个对象。因此可防止数据不一致现象。

2.非线程安全

  是指多个线程操作同一个对象可能会出现问题。而线程安全则是多线程操作同一个对象不会有问题。

3.经常遇到的

  线程安全的    :Vector  HashTable  StringBuffer

  线程不安全的:ArrayList   HashMap  StringBuilder    LinkedList

4.还有一点需要注意的就是:

  非线程安全 != 不安全    

  举个例子说明,例如在主线程中new的一个ArrayList然后多个线程操作同一个ArrayList对象。

  如果是每个线程中new一个ArrayList,而这个ArrayList只在这一个线程中使用,那么肯定是没问题的。换句话说,在使用非线程安全的时候,只需要让每一个线程只操作自己对应的那一个对象就肯定没问题的。

5.线程安全的实现

  线程安全是通过线程同步控制来实现的,也就是在代码块或者方法上加synchronized关键字。当然了,多个synchronized关键字修饰的代码块必须是使用的同一个监视器,只有这样才是真的同步;否则,也实现不了同步。

6.加同步锁会使程序性能降低

转载于:https://www.cnblogs.com/songchj/p/10438868.html

你可能感兴趣的文章
校内的hu测(10.5)
查看>>
Windows Forms高级界面组件-使用对话框
查看>>
Objective-C中的深拷贝和浅拷贝
查看>>
超实用的JQuery小技巧
查看>>
设计模式——单例模式 (C++实现)
查看>>
UML和模式应用学习笔记(6)——系统顺序图、系统操作和层
查看>>
Android -- startActivityForResult和setResult
查看>>
1019 General Palindromic Number (20 分)
查看>>
关于c语言中指针的一些理解
查看>>
Expm 2_2 查找中项问题
查看>>
启动与关闭hadoop
查看>>
7.2 Move Field(搬移字段)
查看>>
[置顶] C#执行Excel宏模版的方法
查看>>
2015年9月28日JQuery提前预习预热笔记
查看>>
perl 删除过期文件
查看>>
document.write与document.getElementById的区别
查看>>
搜索可用docker镜像
查看>>
python基础知识梳理-----7函数
查看>>
函数极限的定义
查看>>
POJ 3684 Priest John's Busiest Day 2-SAT+输出路径
查看>>