多线程基本概念

竞争条件:多个任务并发访问和操作同一数据且执行结果与访问的特定顺序有关,称为竞争条件。(多个任务竞争响应某个条件,因访问顺序不同产生冲突或不一致的情况)。比如“检查再运行”“惰性初始化”。
原子操作:不能被打断的一系列操作。
复合操作:可以被打断的一系列操作。
不变约束(不变性约束):不变式表达了对状态的约束,这些状态应该符合这个约束值的组合。不变式可以代表某些业务规则。比如《java并发编程实战》中的例子:

UnsafeCachingFactorizer的一个不变约束是:缓存在lastFactors的各个因子的乘积应该等于缓存在lastNumber的数值。如果不符合该约束关系则不是线程安全的。

先验条件:针对方法,规定了在调用方法之前必须为真的条件。
后验条件:针对方法,规定了在调用方法之后必须为真的条件。
可见性:确保线程对变量的写入对其他线程是可见的,即刷新到主内存,其他线程要想见到还需要到主内存读取。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值