编写线程安全的代码,实质上是在多线程的环境下管理共享的,可变的状态。
每个对象都有其状态,它的状态保存在它的状态变量中,所以当有多个线程试图改变对象的状态变量时,就出现可能会破坏对象的状态。编写线程安全的类,它封装了如何的必要的同步,而不用客服提供自己的同步协议,所以无状态的对象永远都是线程安全的。
java中每个对象拥有一个内部锁,可以用该内部锁来同步对象的状态,使其在多线程的环境下不被破坏,而且内部锁是可重进入的,即是线程想获得它所拥有的锁时,是可以成功的。
编写线程安全的代码,实质上是在多线程的环境下管理共享的,可变的状态。
每个对象都有其状态,它的状态保存在它的状态变量中,所以当有多个线程试图改变对象的状态变量时,就出现可能会破坏对象的状态。编写线程安全的类,它封装了如何的必要的同步,而不用客服提供自己的同步协议,所以无状态的对象永远都是线程安全的。
java中每个对象拥有一个内部锁,可以用该内部锁来同步对象的状态,使其在多线程的环境下不被破坏,而且内部锁是可重进入的,即是线程想获得它所拥有的锁时,是可以成功的。