为了账号安全,请及时绑定邮箱和手机立即绑定

有比赛条件是可以接受的吗?

有比赛条件是可以接受的吗?

Go
蛊毒传说 2022-06-27 10:55:17
我正在编写 go 代码,想知道是否存在竞争条件是否可以接受。例如,只要主线程稍后会读取该值,就可以写入主线程可能使用的 goroutine 中的变量吗?是否应该始终避免竞争条件,或者是否存在可以接受的情况?
查看完整描述

1 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

TL;DR
竞争条件是有害的,可能是导致漏洞的原因。

什么是比赛条件?
竞争条件意味着多个线程需要相同的资源,并且获取该资源的线程的顺序取决于实际运行,因此是不确定的。


总是很危险吗?
这就像一场赛马,其中不同的线程是不同的马:如果您的软件需要特定的马(线程)才能首先获得(资源)以使其有效执行,那么这是一个问题 - 但是如果您不注意线程的顺序获取资源很好。


安全视角
竞争条件通常是有害的,甚至会导致漏洞,例如脏c0w

查看完整回答
反对 回复 2022-06-27
  • 1 回答
  • 0 关注
  • 86 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信