如何解决同步代码块的数据安全问题

本篇文章给大家分享的是有关如何解决同步代码块的数据安全问题,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

创新互联建站专注于克井网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供克井营销型网站建设,克井网站制作、克井网页设计、克井网站官网定制、小程序设计服务,打造克井网络公司原创品牌,更为您提供克井网站排名全网营销落地服务。

 一、同步代码块
 synchronized关键字可以用于方法中的某个区块中,表示只对这个区块这个区块的资源实现互斥访问
 卖票案例出现了线程安全问题
 卖出了不存在的票和重复的票
 解决线程安全问题的一种方案:使用同步代码块
 格式:
 synchronized(同步锁){
 需要同步操作的代码
 }


 注意事项:


 1.通过代码块中的锁对象,可以使用任意的对象
 2.但是必须保证多个线程使用的锁对象是同一个
 3.锁对象作用:把同步代码块锁住,只让一个线程在同步代码块中执行

如何解决同步代码块的数据安全问题

       测试类:

如何解决同步代码块的数据安全问题
 二、同步技术的原理
 使用了一个锁对象,这个锁对象叫同步锁,也叫对象锁,也叫对象监视器
 3个线程一起抢夺cpu的执行权,谁抢到了谁执行run方法进行卖票
 t0抢到了cpu的执行权,执行run方法,遇到synchronized代码块
 这时t0会检查synchronized代码块是否有锁对象
 发现有,就会获取到锁对象,进入到同步中执行
 t1抢到了cpu的执行权,执行run方法,遇到synchronized代码块
 这时t1会检查synchronized代码块是否有锁对象
 发现没有,t1就进入到阻塞状态,会一直等待t0线程归还锁对象
 一直到t0线程执行完同步中的代码,会把锁对象归还给同步代码块
 t1才能获取到锁对象进入到同步中执行

以上就是如何解决同步代码块的数据安全问题,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


分享名称:如何解决同步代码块的数据安全问题
文章网址:http://hbruida.cn/article/jdgdsd.html