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

我正在编写 go 代码,想知道是否存在竞争条件是否可以接受。例如,只要主线程稍后会读取该值,就可以写入主线程可能使用的 goroutine 中的变量吗?是否应该始终避免竞争条件,或者是否存在可以接受的情况?



蛊毒传说
浏览 87回答 1
1回答

函数式编程

TL;DR竞争条件是有害的,可能是导致漏洞的原因。什么是比赛条件?竞争条件意味着多个线程需要相同的资源,并且获取该资源的线程的顺序取决于实际运行,因此是不确定的。总是很危险吗?这就像一场赛马,其中不同的线程是不同的马:如果您的软件需要特定的马(线程)才能首先获得(资源)以使其有效执行,那么这是一个问题 - 但是如果您不注意线程的顺序获取资源很好。安全视角竞争条件通常是有害的,甚至会导致漏洞,例如脏c0w。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go