日期:2014-05-20  浏览次数:20758 次

Java面试问题之四十
请问一个线程安全的类必须满足几个条件,这些条件分别是什么?

答:要设计一个满足线程安全的类一般需要满足以下三个条件:
     (1)这个类的对象可以同时被多个线程安全地访问。
     (2)每个线程都能正常执行原子操作,等到正确的结果。
     (3)在每个线程的原子操作都完成之后,对象处于逻辑上合理的状态。
      另外,不可变类总是线程安全,不需要对这样的类进行特别的限制,因为它的对象的状态始
      终是不变的,任何线程只能读取对象的状态,而不能改变对象的状态。对于可变类,如果要
      保证其线程安全,必须根据实际情况,对某些原子操作进行同步。