什么是线程安全
多个线程同时操作同一个共享资源的时候出现的业务安全问题,我们称为线程安全问题
线程安全出现的原因
线程安全模拟
解决线程安全问题—线程同步
线程同步概述
让线程实现依照先后次序访问共享资源,将共享资源加锁,每次只能一个线程进入访问完毕后解锁,其他线程才能进来
同步代码块
作用:把出现线程安全问题的核心代码给上锁
原理:每次只能一个线程进入,执行完毕后自动解锁,其他线程才能进来
锁对象的要求:理论上锁对象只要对当前同时执行的线程来说是同一个对象即可
这是因为,如果有a、b、c、d四个线程,a、b所需要的共享资源是1,c、d所需要的共享资源是2,如果用一个3作为同步锁对象,abcd都要竞争这个3,但是ab和cd并没有共用资源,他们是可以共同执行的,这样会影响效率,所以对ab以1为同步锁对象,对cd以2为同步锁对象这样更好
同步方法
Lock
线程通信
什么是线程通信
线程通信常见形式
通过共享一个数据的方式实现
根据共享数据的情况决定自己该怎么做,以及通知其他线程怎么做