小编Ket*_*xit的帖子

当多个线程递增时共享变量的最小和最大可能值

我有一个全局共享变量,并且由生成的5个线程中的每个线程更新5次.根据我的理解,增量操作由3条指令组成

load  reg, M
inc reg
store reg, M
Run Code Online (Sandbox Code Playgroud)

所以我想问一下,在这种情况下,在5个线程中给定任意交错的最大值和最小值是多少.

所以据我说,最大值将是25(我100%确定它可以超过25),最小值是5.但我不确定最小值.在一些任意交错中它可以小于5吗?任何输入将不胜感激.

/* Global Variable */
int var = 0;

/* Thread  function */
void thread_func()
{
     for(int c = 0; c < 5; c++)
             var++;
}
Run Code Online (Sandbox Code Playgroud)

multithreading

6
推荐指数
1
解决办法
3499
查看次数

标签 统计

multithreading ×1