什么是线程同步/线程安全?线程同步线程安全的实现方式有几种?
什么是线程同步/线程安全?线程同步线程安全的实现方式有几种?
线程同步也叫线程安全,当多条线程同时访问同一个资源的时候,每一次只能由多日安线程中的其中一条访问资源,当这条线程访问资源的时候,其他的线程都处于等待阶段,不能访问资源,当当前访问资源的线程访问完了这个资源以后,其他的线程中的一条才能访问这个资源,剩下的线程则继续处于等待阶段,不能访问资源,实现这个的过程就是线程同步或者线程安全。【排队访问资源】可以保证数据的一致性
有2中常见实现方式:
1. 通过synchronized关键字设置线程安全
1. 同步代码块
synchronized(同步对象){需要被同步执行的java代码}
因为在设置同步对象的时候总是把握不了,这个方式不推荐使用
2. 同步方法
访问限制修饰符 synchronized 方法的返回值 方法名称(参数){
需要被同步执行的java代码
}
2. 通过Lock接口
使用比较灵活,在需要的时候通过Lock接口提供的lock()来锁定资源不被其他线程使用,可以访问资源结束的时候手动通过Lock接口提供的unlock()方法释放锁定的资源。