当前位置:主页 > 知识百科 > 生活百科 > 正文

java如何实现线程安全

发布时间:2021-11-17 22:55 来源:互联网 点击:0
线程安全就是要保证数据的高度一致性和准确性,但不是一定要加锁才是线程安全性,只要代码里没有变量互串,线程之间互不影响,就是线程安全的,那么java如何实现线程安全?下面我们一起来了解一下。网络安全小知识:(1)互斥同步:互斥是因,同步是果,推荐使用synchronized关键字进行同步,在concurrent包中有ReentrantL

java如何实现线程安全

线程安全就是要保证数据的高度一致性和准确性,但不是一定要加锁才是线程安全性,只要代码里没有变量互串,线程之间互不影响,就是线程安全的,那么java如何实现线程安全?下面我们一起来了解一下。

网络安全小知识

(1)互斥同步:

互斥是因,同步是果,推荐使用synchronized关键字进行同步,在concurrent包中有ReentrantLock类,实现效果差不多.还是推荐原生态的synchronized.

(2)非阻塞同步:

需要硬件指令完成.常用的指令有:

Test-and-Set

Fetch-and-Increment

Swap

Compare-and-Swap (CAS)

Load-Linked/Store-Conditional (LL/SC)

典型的应用在AtomicInteger中

(3)无同步方案

可重入代码:在代码执行的任何时刻中断它,转而去执行另外一段代码,而在控制权返回后,原来的程序不会出现任何错误.

可重入代码有一些共同的特性:例如不以来存储在堆上的数据和公用的系统资源,用到的状态量都由参数中传入,不调用非可重入的方法等.

线程本地存储:如果一段代码中所需要的数据必须与其他代码共享,那就看看这些共享数据的代码是否能保证在统一线程中执行?如果能保证,可以把共享数据的可见范围限制在同一个线程中,这样,无需同步也能保证线程之间不出现数据争用问题.在java中可以通过使用java.lang.ThreadLocal开实现线程本地存储的功能.

这种应用在人人网的开源框架Rose有广泛的应用,最经典的应用在获取当前登录用户对象的时候,是通过t票 到cache中来拿到当前登录用户的user对象.对象就保存在ThreadLocal中.经典的web交互模型中"一个请求对应一个服务器线程"的处理方式,把user对象保存在线程本地存储中 可以很好的解决线程安全的问题。

漂亮女人街提醒您:实施网络安全防范措施与应用措施是必须要做的,这样才能保障在网络中的安全。最后大家想要了解更多网络安全常识和网络安全技术可在本网站了解。


"小编整理不易,小礼物走一走,万分感谢!"
赞赏
漂亮女人街

真诚赞赏,手留余香

相关资讯

大学生兼职不结工资如何维权
调查显示,有66.2%的大学生在实习过程中曾被拖欠、克扣工资。而且,面对这种行为,很多的大学生会为了争取将来被留用的一丝机会而放弃维权。那么,大学生兼职不结工资如何维权那?就让漂亮女人街的小编和你一起去了
稀硫酸该如何储存
稀硫酸的物理性质是常温下无色无味透明液体,密度比水大。那么稀硫酸该如何储存呢?请大家仔细阅读下文内容。稀硫酸的储存条件有哪些?小编总结如下:稀硫酸是指溶质质量分数小于或等于70%的硫酸的水溶液,由于稀硫酸
分期付款不应该更省钱吗,为什么还存不下钱?
以前的年代除非是天天购买大量昂贵产品的人才会办理信用卡,一般人购物也就是买得起就买,买不起就算了。而现在网购出现后,各大商家纷纷推出分期付款服务,让人觉得仿佛分期付款与一次性付清没什么区别。 一、网购
生活垃圾对环境的影响有哪些
大家都知道生活垃圾的可以分为四类,可回收垃圾、餐厨垃圾、有害垃圾和其它垃圾。那么,生活垃圾对环境的影响有哪些呢?随漂亮女人街小编一起看看吧。 1、侵占土地 城市生活垃圾的恶性累积,已成为世界性的环境灾难
高空作业免责协议有哪些内容
免责是指当事人约定的用以免除或限制其未来合同责任。免责条款常被合同一方当事人写入合同或格式合同之中,作为明确或隐含的意思要约,以获得另一方当事人的承诺,使其发生法律效力。那么高空作业免责协议有哪些内容
台风会引发地震吗
由于地球在不断运动和变化,逐渐积累了巨大的能量,在地壳某些脆弱地带,造成岩层突然发生破裂,或者引发原有断层的错动,这就是地震。由地震的成因来看,台风是不会引发地震的。地震绝大部分都发生在地壳中,地震共