我有一个全局共享变量,并且由生成的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)
jtd*_*ubs 16
鉴于您对增量的定义,我同意您的最大值为25.
但是,我认为在以下情况下min可以是2.我已经命名了5个线程A,B,C,D和E.