gpt4 book ai didi

multithreading - 具有 2 个线程的全局变量的最小值和最大值

转载 作者:行者123 更新时间:2023-12-04 13:27:53 24 4
gpt4 key购买 nike

我有一个 for 循环int c = 0 ;
for(int i=0 ; i<100 ; i++)
c++;

其中 C 是一个全局变量。
如果我用 2 个线程运行此代码,C 的最小和最大最终值是多少?如果我不锁定 c++ 部分中的线程如何?

最佳答案

如果将增量代码转换为程序集,它的伪代码将如下所示:

1-mov ax,mem[c]
2-inc ax
3-mov mem[c],ax

如果我们有 2 个线程,请考虑这种情况:
thread 1: line 1
thread 2: line (1-2-3) for 99 times
thread 1: line (2-3)
thread 2: line 1
thread 1: line (1-2-3) for remaining 99 times
thread 2: line (2-3) for the last time

现在 c 的值是 2 所以最小值是 2

关于multithreading - 具有 2 个线程的全局变量的最小值和最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16056462/

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