Java中如何保证线程安全性
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中如何保证线程安全性相关的知识,希望对你有一定的参考价值。
参考技术A 线程安全主要在体现在这三个方面:1.原子性:提供互斥访问,同一时刻只能有一个线程对数据进行操作,(atomic,synchronized);
2.可见性:一个线程对主内存的修改可以及时地被其他线程看到,(synchronized,volatile);
3.有序性:一个线程观察其他线程中的指令执行顺序,由于指令重排序,该观察结果一般杂乱无序,(happens-before原则)。
所以想保证线性安全的话只要从这三个方面入手就可以了。 参考技术B java中,线程安全的解决方法或过程:
1.如果对象是immutable,则是线程安全的,例如:string,可以放心使用。
2.
如果对象是线程安全的,则放心使用。
3.有条件线程安全,对于vector和hashtable一般情况下是线程安全的,但是对于某些特殊情况,需要通过额外的synchronized保证线程安全。
4.使用synchronized关键字。
以上是关于Java中如何保证线程安全性的主要内容,如果未能解决你的问题,请参考以下文章