Java线程安全

线程安全:
1、程序中的每一条语句都是原子操作,则是线程安全的。
2、实例变量是在堆中分配的,并不被属于该实例的所有线程共享,只有一个线程独享,是线程安全的。
3、局部变量在堆栈中分配,因为每个线程都有它自己的堆栈空间,所以是线程安全的.
4、静态类不用被实例化,就可直接使用,也不是线程安全的.
5、单线程方式是线程安全的。

线程安全,是指一个方法(method)可以在多线程的环境下安全的有效的访问进程级的数据(这些数据是与其他线程共享的)。事实上,线程安全是个很难达到的目标。
线程安全的核心概念就是同步,它保证多个线程:
同时开始执行,并行运行
不同时访问相同的对象实例
不同时执行同一段代码

比如说,两个线程操作同一个ArrayList变量,那么一个线程这一时刻读的数据可能在下一刻要改变。

但是不同的线程访问Vector的时候不会发生这种错误,因为java会有相应的机制是同一时刻只有一个线程对这个变量操作。



你可能感兴趣的:(java线程)