1.线程安全的产生的原因?
线程安全的问题 是在多线程下资源共享的数据被串改了 导致数据不准确,是在增,删,改 的操作用,然而查询不会
2.什么哪些数据会被线程共享?
3.在spring默认singleton单例模式下对共享资源的影响?
4.解决线程安全用到到的synalise关键字的作用?以及其他途径能改变线程安全的方法?
java 成员变量的线程安全
观点1:静态成员变量 的线程安全产生 在多线程的情况下
非静态成员变量(也叫实例变量,需要类实例化后调用)正常情况下在多线程的时候不会存在线程安全问题,因为这个时候 类会对每个线程创建一个实例,问题就在,如果是单例模式的 @Bean 的时候 会存在线程安全的问题
方法里边的局部变量不会,
我的意思是 普通的不加static的实例方法,因为存在单例的情况
- 修饰实例方法,作用于
当前实例
加锁,进入同步代码前要获得当前实例的锁 - 静态方法,作用于
当前类对象
加锁,进入同步代码前要获得当前类对象的锁 - 修饰代码块,
指定加锁对象
,对给定对象加锁,进入同步代码库前要获得给定对象的锁。
线程同步:
同步 不是一起动作,这个同是协同相互配合;所以线程同步是,线程之间按顺序依次执行。