如果代码是否是线程安全的,我如何测量代码?
可能是一般准则或最佳做法
我知道线程安全的代码是跨线程工作而不会做出不可预测的行为,但这有时变得非常棘手且难以做到!
答案 0 :(得分:0)
我提出了一个简单的规则,这个规则很难实现,因此理论上很难实现。如果您可以向代码中的某些位置注入一些Sleep
操作,则代码不是线程安全的,因此以显着的方式更改代码的结果。代码是线程安全的(否则没有可能改变代码执行结果的延迟组合)。
在考虑线程安全时,不仅要考虑您的代码,还要考虑代码的其他部分,框架,操作系统,外部因素,如磁盘驱动器和内存......一切。这就是为什么这个“经验法则”主要是理论上的。
答案 1 :(得分:-1)
我认为最好的答案就在这里 Multi Threading,在写这个问题之前,我没有注意到这样的答案 我觉得关闭它更好! 感谢
算法或应用程序的线程安全性通常根据consistency model来衡量,在存在多个执行线程(或分布式系统的多个进程)时,它保证遵循该linearizability。要检查的两个最重要的事项如下。