Subsections 线程安全(Thread safety)锁(lock)共享对象对象组合基础构建模块任务执行取消和关闭线程池的使用性能与可伸缩性并发程序的测试显示锁原子变量和非阻塞同步机制
一、线程安全(Thread safety)无论何时,只要多于一个线程访问给定的状态变量。而且其中某个线程会写入该变量,此时必须使用同步来协助线程对该变量的访问。线程安全是指多个线程在访问一个类时,如果不需要额外的同步,这个类的行为仍然是正确的。线程安全的实例:(1)、一个无状态的类是线程安全的。 无状态类是指不包含任何域或也没有引用其它类的域。一次特定计算的瞬间状态,会唯一存在本地变量中。(2)、原子操作是线程安全的。 自增操作时一个离散操作的简写形式,获取当前值,加一,写回新值。这是一个读-改-写操作,不具备原子性。(3)、竞争条件是不安全的。 当计算的正确性依赖于运行时相关的时序或者多线程的交替时,会产生竞争条件。最常见的一种是检查再运行(check-then-act)。eg:[java] view plain copy//如果是第一次调用,需要初始化。
[java]%20view%20plain%20copy%20新闻热点
疑难解答