程序开发 · 2023年12月27日

存在竞争条件是否可以接受?

当前位置: > > > > 存在竞争条件是否可以接受?

来源:stackoverflow
2024-04-24 11:42:22
0浏览
收藏

你在学习Golang相关的知识吗?本文《存在竞争条件是否可以接受?》,主要介绍的内容就涉及到,如果你想提升自己的开发能力,就不要错过这篇文章,大家要知道编程理论基础和实战操作都是不可或缺的哦!

问题内容

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

解决方案

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

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

总是危险吗?
这就像一场赛马,不同的线程是不同的马:如果您的软件需要特定的马(线程)来获得第一个(资源)才能有效执行,那么这是一个问题 – 但如果您不小心获得线程的顺序资源还好啊

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

今天关于《存在竞争条件是否可以接受?》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注公众号!