线程安全

线程安全就是:单线程下操作是什么结果,多线程下操作就是什么结果,就是线程安全的。如果单线程下是一个结果,多线程下是另外一个结果,就是线程不安全的。

线程不安全的原因:

1.多个线程在操作共享的数据

2.操作共享数据的代码有多条。

3.多个线程对共享数据有写操作。


线程安全问题如何解决?

使用线程同步的方式。

1.同步代码块,规定一次只能有一个线程操作该代码。

2.同步方法,自动产生一个锁对象,静态方法时为当前类,实例方法为实例 对象

3.同步锁,实现lock接口,可以控制加锁和解锁,灵活度高,但是一定要保证解锁,因为如果出异常,锁无法被释放,所以这里用try...finally保证解锁。以上两种无法实现加锁解锁。

线程安全_第1张图片

4.volatile变量

5.ThreadLocal类

6.阻塞队列

7.原子类

你可能感兴趣的:(线程安全)