多线程之:线程安全
线程安全是指:没有竞态条件,允许被多个线程同时执行,且执行结果幂等程序块。
java代码多线程环境下安全的资源:
1、基本数据类型的局部变量;
2、未被作为返回值、未被传递到其它线程访问的方法中的非基本数据类型的局部变量;
3、受线程控制且未产生逃逸的资源;
4、共享状态本身是同步的的资源。
线程控制逃逸指:资源的创建、使用、销毁都在同一个线程中,且永远不会脱离该线程的控制。
不安全的资源:
1、java类的对象成员变量;
2、不同步的共享状态;
3、产生线程控制逃逸的的资源;
4、对象的引用不是线程安全的,即使是一个不可变对象。