Console.WriteLine (text) ).Start(); //Threa-6ren">
gpt4 book ai didi

c# - 线程不一致

转载 作者:太空宇宙 更新时间:2023-11-03 20:18:32 25 4
gpt4 key购买 nike

我有下面的代码会产生不一致的输出。

string text = "t1";
new Thread ( () => Console.WriteLine (text) ).Start();

//Thread.Sleep(1);

text = "t2";
new Thread ( () => Console.WriteLine (text) ).Start();

有时它会产生 t1 和 t2,有时它会产生双 t2。我现在在想的是。当它的输出是 double t2 时,第一个线程捕获的变量值为 t2,因为它是在最后一个变量赋值之后开始的。我说得对吗?

注意:我在一台慢速机器上运行这段代码。

最佳答案

你是对的;见race conditions在维基百科上。

根据定义,线程不会同步执行,因此您不应期望代码的顺序明确地确定程序的行为。

关于c# - 线程不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15140311/

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