线程安全

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

二、前提条件:多个线程之间存在共享数据访问(因为如果一段代码根本不会与其他线程共享数据,那么线程安全的角度来看,程序是串行还是多线程执行对它来说是完全没有区别的)。

三、线程安全的分类:不可变、绝对安全、相对线程安全、线程兼容和线程对立。

四、判断原则:先行发生(判断数据是否存在竞争、线程是否安全的主要依据,依靠这个原则和以下几条规则一揽子解决并发环境下两个操作之间是否存在冲突的所有问题)。

五、先行发生规则:程序次序规则、管程锁定规则、volatile变量规则、线程启动规则、线程终止规则、线程中断规则、线程终结规则、传递性。

六、实现线程安全的方法:互斥同步、非阻塞同步、线程本地存储

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值