auto commit
This commit is contained in:
parent
4abf99fca4
commit
ca83cc7bd5
|
@ -548,7 +548,7 @@ join() 方法返回先行发生于 Thread 对象的结束。
|
|||
|
||||
# 八、线程安全
|
||||
|
||||
> 当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。---- Java Concurrency In Practice
|
||||
当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的。 《Java Concurrency In Practice》
|
||||
|
||||
## 线程安全分类
|
||||
|
||||
|
@ -678,7 +678,7 @@ ABA :如果一个变量 V 初次读取的时候是 A 值,它的值被改成
|
|||
|
||||
要保证线程安全,并不是一定就要进行同步,两者没有因果关系。同步只是保证共享数据争用时的正确性的手段,如果一个方法本来就不涉及共享数据,那它自然就无须任何同步措施去保证正确性,因此会有一些代码天生就是线程安全的。
|
||||
|
||||
**可重入代码(Reentrant Code)*
|
||||
**可重入代码(Reentrant Code)**
|
||||
|
||||
这种代码也叫做纯代码(Pure Code),可以在代码执行的任何时刻中断它,转而去执行另外一段代码(包括递归调用它本身),而在控制权返回后,原来的程序不会出现任何错误。相对线程安全来说,可重入性是更基本的特性,它可以保证线程安全,即所有的可重入的代码都是线程安全的,但是并非所有的线程安全的代码都是可重入的。
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user