今天跟大家分享下Java中线程安全的知识。
前言
Java内存模型,如下图:
线程不安全产生的主要原因:因为多个线程共享一个内存,所以当多个线程共享一个全局变量的时候,可能会受到其他干扰。
如线程更新会先在本地内存更新,然后再同步到共享内存中,当多个线程同时读写的时候,数据会出现错误,就产生了线程不安全的现象。
注意:如果线程对自己的局部变量进行修改是不会受影响,就是没有线程安全的问题。
1 线程间的同步
针对上面提到的问题,因此我没要对对象(上面提到的全局变量)加锁!即保证一次只有一个线程对对象进行操作。
本次主要为大家简单介绍两种锁:synchronized(自动锁)和lock(JDK1.5并发包,手动锁,即需要手动进行加锁以及解锁的操作)。
- 1.1 简介:
使用 synchronized(obj) 对象锁,表示一次只有一