java中什么叫线程安全和线程不安全?

code力力
  • 10

多线程中是共享内存的,是不是如果线程不安全,多个线程同步操作一个内存对象会发生意外?望高人解答,先谢过了!

回复
阅读 6.6k
3 个回答

线程都有自己的工作内存,在取一个值时,会向共享内存copy到自己的工作内存;于是乎,当你多个线程同时存在,就有问题了,你两个线程同时是操作共享内存的一个数据,如果不加锁,两个线程对这个数据的操作和判断,你不可控;因为CPU执行两个线程的代码可能每次顺序都不一样的

线程不安全就是说,按照某一种线程调度顺序调度,程序会挂掉。。或者,程序只有再某一些线程调度顺序调度才正确,就是线程不安全。

反之,无论按照什么顺序调度,代码结果都是正确的,就是线程安全。

这件事情和语言没关系。

简单点说就是:
线程安全==无论多少线程执行,结果都是预期,线程之间互不干扰,也无法干扰。
线程不安全==在单个线程下不会有问题,但在多线程环境中,结果会受到随机干扰,即线程的执行顺序会影响到其他线程的结果。

根据条件删除元素,左边目录为5.2。
可以看一下,尝试理解一下,欢迎探讨。

宣传栏