好吧,我有一个关于线程的问题.
有两个未同步的线程同时运行并使用全局资源"int num"1st:
void Thread()
{
int i;
for ( i=0 ; i < 100000000; i++ )
{
num++;
num--;
}
}
Run Code Online (Sandbox Code Playgroud)
第二:
void Thread2()
{
int j;
for ( j=0 ; j < 100000000; j++ )
{
num++;
num--;
}
}
Run Code Online (Sandbox Code Playgroud)
问题陈述:程序结束时变量"num"的可能值是什么.现在我会说0将是程序结束时num的值,但是,尝试运行此代码,你会发现结果是随机的,我不明白为什么?
完整代码:
#include <windows.h>
#include <process.h>
#include <stdio.h>
int static num=0;
void Thread()
{
int i;
for ( i=0 ; i < 100000000; i++ )
{
num++;
num--;
}
}
void Thread2()
{
int j;
for ( j=0 …Run Code Online (Sandbox Code Playgroud)