线程的安全

本文探讨了线程安全问题,介绍了synchronized同步块和Lock接口的使用,详细解释了如何通过这两种方式避免多线程操作共享数据时可能出现的数据错乱。

            线程中的安全就是怕多个线程同时运行这些数据,会造成数据的错乱,所以会出现线程的安全,所以我们要想在操作这些数据的时候需要用到线程的安全关键之,cynchronized同步块,在这个方法中有需要写入任意的对象就可以了,然后将公共的数据放入这个代码块中就可以了,这个同步块可以用在方法中,任何添加了这个块的都会一锁,只是锁不相同,平常的方法中添加锁的话可以自己定义一个对象,也可以用this,因为this就是对象的引用,所以也可以当作是一把锁,但是!,如果是静态的方法添加了同步锁的话那就不一样,因为静态不属于对象引用,在静态的方法中也不允许非静态成员变量,静态同步方法的锁并不是this,因为静态的方法不是对象的引用,而this是对象的引用,但是,静态的锁是什么呢?这个锁就是当前的类的class方法!

 

    Lock接口也是用来管理线程的安全性的,会比之前的简单一点,主要的操作步骤,1,先创建一个实现接口类的对象,注意,是在声明成员变量下面创建的对象,不建议再run和循环下创建对象!,第二步,利用这个对象的lock方法来得到锁,之后将所有共享的内容放到这个方法的后面,也不需要加什么花括号,以为它还有个配套的使用,就是unlock()方法,这个就是关闭锁的,所以将所有的共享的数据放到它们之间就可以了!实现接口的子类是ReentrantLock();我们主要就是创建这个样的一个对象!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值