线程不安全?

1、线程不安全?


    线程安全是java学习中的重点,了解哪些情况下线程不安全,可让初学者更好的理解线程安全的各种技巧。


    举例说明:


    我有一台电脑。有一天,朋友电脑坏了,需要借用我的电脑。第二天,我发现桌面上面的文件丢了。

    在这里插入图片描述


    多人用同一电脑,如果没有规则,很容易出现数据的不安全。


    所以并不是线程安不安全,而是数据安不安全。


    程序是对数据的读写,线程不安全的本质是在多线程环境中数据出现了问题。


2、有状态和无状态


    没有绝对的安全或者不安全。 我们从一般角度进行讨论:


    从数据存储的角度, 我们把类(对象或者方法)分为有状态和无状态。


    1.有状态 表示 有公共区域数据的读写。


    2.无状态 表示 没有公共区域数据读写。(代表多层含义: 1. 局部数据读写其他线程无法访问。 2. 只读数据 )


    总结1: 某个类线程安全与否,你先看是否在多线程环境下? 某个局部变量存储数据,没有其他线程访问的机会,那他很安全。


    总结2: 在多线程环境下,如果是无状态的类,一般也是安全的。


    就像你身上没钱,走路不怕被偷钱 。OMG!!!


            在这里插入图片描述

     总结3: 在多线程环境下,如果类对公共区域数据有读写操作,那么一般是 不安全的。


    为了保证安全,我们需要增加其他手段,比如锁。

    那么就有人问了 : 啥样锁? 咋锁?


    到底是个什么锁,如何锁呢? 请持续关注我哦,晚些说给您听

    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43755216/article/details/84856356