首页> 知识> 常识> 信息安全> 正文

java如何实现线程安全

2018.08.27 17:143384

线程安全就是要保证数据的高度一致性和准确性,但不是一定要加锁才是线程安全性,只要代码里没有变量互串,线程之间互不影响,就是线程安全的,那么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对象保存在线程本地存储中 可以很好的解决线程安全的问题。

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

( 责任编辑: 张小付 )

展开剩余全文
分享到
  • 微信
  • QQ空间
  • 新浪微博
  • QQ好友
  • 人人网
  • 腾讯微博
发表我的评论
提交评论

相关阅读

网络祭奠的优势之处在哪里?这些好处很明显

网络祭奠的优势之处在哪里?这些好处很明显

2022.11.23 1330
在哪里找网络兼职?可以尝试在这些地方寻找

在哪里找网络兼职?可以尝试在这些地方寻找

2022.08.31 1922
靠谱的网络兼职有哪些?这些可以值得尝试

靠谱的网络兼职有哪些?这些可以值得尝试

2022.08.31 1561
网络兼职有哪些好处?这几点优势要了解

网络兼职有哪些好处?这几点优势要了解

2022.08.31 1651
网络兼职是什么意思?赶紧来了解下

网络兼职是什么意思?赶紧来了解下

2022.08.31 1738
加载更多

为您推荐

电脑宕机频繁出现,掌握使用技巧很重要

电脑宕机频繁出现,掌握使用技巧很重要

2022年06月30日 14:01 1374
不想工作时电脑死机,平时一定要懂这些知识

不想工作时电脑死机,平时一定要懂这些知识

2021年12月29日 10:44 2113
指纹支付安全有效,你还进入了误区之中吗

指纹支付安全有效,你还进入了误区之中吗

2021年06月28日 10:21 2931
做微商代理需要注意什么?

做微商代理需要注意什么?

2018年02月25日 13:37 6219
网络实名制有什么好处?

网络实名制有什么好处?

2018年01月17日 17:43 5882
返回顶部
返回首页