gpt4 book ai didi

c# - 仅在启动线程中分配的类宽整数是否可以安全读取其值?

转载 作者:行者123 更新时间:2023-12-03 13:21:27 25 4
gpt4 key购买 nike

如果我有一个在程序开始时分配给它的变量,然后程序创建了几个线程然后引用了它,那么线程安全吗?

private int myVal

private void StartOfApp()
{
myVal = 99;
}

private void MethodCalledFromVariousThreads()
{
int i = 100;
if (i > myVal) //Is reading this variable thread safe?
{
//Do Stuff
}
}

}

最佳答案

是的,这是线程安全的。因为您永远不会写入变量(我认为),所以它的数据本质上是不可变的。 (好吧,它确实是可变的,因为这是C#,但是您知道了)。因此,它将始终返回相同的值,因此可以安全地从中读取。

如果您从不写入变量(除非在创建变量时),那么从线程中读取变量将始终是线程安全的。

关于c# - 仅在启动线程中分配的类宽整数是否可以安全读取其值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8140142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com