线程安全和线程同步的理解

Posted from-java-to-world

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程安全和线程同步的理解相关的知识,希望对你有一定的参考价值。

线程安全:线程安全是多线程编程时的计算机程序代码中的一个概念。在拥有共享数据的多条线程并行执行的程序中,线程安全的代码会通过同步机制保证各个线程都可以正常且正确的执行,不会出现数据污染等意外情况。

理解:多个线程对同一个是数据进行写操作的时候,执行的结果和预期结果是一致的,就表示线程安全。(如购票系统)

线程同步:即当有一个线程在对内存进行操作时,其他线程都不可以对这个内存地址进行操作,直到该线程完成操作, 其他线程才能对该内存地址进行操作,而其他线程又处于等待状态,实现线程同步的方法有很多,临界区对象就是其中一种。

理解:对线程执行的方法加锁,保证一次只有一个线程在执行该方法(操作数据),这样就不会出现脏数据,也就保证了线程安全。

当时面试的时候问到vectorArrayList关于速度和线程同步的时候,面试官问我为什么线程同步了就线程安全了,没回答出来。。。

参考了别人的博客:线程安全与线程同步

以上是关于线程安全和线程同步的理解的主要内容,如果未能解决你的问题,请参考以下文章

什么是线程安全?

java-线程安全和非线程安全区别理解

Java_多线程实现同步

Java并发编程之线程安全线程通信

深入理解Java虚拟机(第三版)-14. 线程安全与锁优化

怎么理解Stringbuffer 是线程安全的 stringbuilder是线程不安全的