1.说一说线程安全的理解?
答:线程安全就是:多个线程访问同一个对象时,不用进行额外的同步控制或者其他的协调操作,调用这个对象的行为都可以获得的正确的结果,我们就是它是线程安全的。
2.线程安全产生的原因?
答:多个进程对同意对象或者资源进行读写操作,导致读写不对等。
3.线程安全的解决方案?
答: 1.synchronized 解决方案
2.Lock 解决方案
3.原子变量
4.避免局部变量共享(private修饰局部变量)
5.避免共享变量的写操作,只有读操作的代码是不会有线程安全问题的
6.避免外星方法的使用:请比较 JDK 中 String 类的实现 , 采用 final 修饰类,预防子类重写父类方法造成的安全问题
7.避免线程安全类的多个方法组合;如:String , Integer , Hashtable ...都是线程安全类,但在多个方法组合调用时,就会有线程安全问题