java语言线程的安全可以按照安全程度分为五个等级(不可变,绝对的线程安全,相对线程安全,线程兼容,线程对立)

java语言线程的安全可以按照安全程度分为五个等级:

一 不可变

1.不可变的对象一定是线程安全的,无论是对象的方法实现还是调用者,都不需要再采取任何的线程安全保障措施。

2.不可变带来的安全性是最纯粹的最简单的。

3.final关键字就可以做到不可变。

二 绝对的线程安全

1. 不管运行时环境如何,调用者都不需要任何额外的同步措施。

2.通常代价是很大的,容易不切实际。

3.API中标注自己是线程安全的类,大多数都不是绝对的线程安全。比如vector

三 相对的线程安全

1.通常来说线程是安全的,但对于一些特定顺序的连续调用,就可能需要在调用端使用额外的同步手段来保证调用的正确性。

2.大部分线程都属于这种类型,如vector

四 线程兼容

本身不是线程安全的,但是可以通过调用端使用同步来保证安全性。

五 线程对立

无论是否采用同步措施,都无法在并发中使用。

发布了415 篇原创文章 · 获赞 434 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/qq_41901915/article/details/103654340