什么是线程安全

什么是线程安全?

当多个线程访问一个对象,如果不用考虑这些线程在运行环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象就是线程安全的。

线程不安全:

比如使用Set集合考虑交替调度,如get的时候不能同时set、或者进行额外同步,比如使用synchronized修饰;我们考虑了交替调度和做了额外同步,所以不能说它是线程安全的。

各种需要考虑线程安全的情况:

  • 访问共享的变量或资源,会有并发风险,比如对象的属性、静态变量、共享缓存、数据库等

  • 所有依赖时序的操作,即使每一步操作都是线程安全的,还是存在并发问题:read~ modify- write、 check-then-act

  • 不同的数据之间存在捆绑关系的时候,比如ip和端口号

  • 我们使用其他类的时候,如果对方没有声明自己是线程安全的

上篇:处理多线程子线程的异常UncaughtExceptionHandler

下篇:线程安全第一大类问题——运行结果出错

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值