主题:[原创]多线程编程里有个问题
LINUX下的 多线程编程里有个问题 请教
int main()
{
int n=fork();
if(n)
{
父进程
}
else
{
子进程
}
}
C里的if 与else语句是 一个时间内只允许执行一个语句,另一个语句是不会执行的,但是 这个 多线程编程下 是 父与子 进程 交错执行。
这是怎么回事啊?
是不是:
执行a的时候,a发现自己被执行了,但是不是被它自己执行的,于是它就认为自己是父进程,转入父进程的处理程序;这段程序创建了一个子进程,子进程的程序还是a,但不同的是它是被a(同一个程序的不同进程)执行的,所以它转入了子进程的那个分支,处理子进程的任务
不是很理解。
int main()
{
int n=fork();
if(n)
{
父进程
}
else
{
子进程
}
}
C里的if 与else语句是 一个时间内只允许执行一个语句,另一个语句是不会执行的,但是 这个 多线程编程下 是 父与子 进程 交错执行。
这是怎么回事啊?
是不是:
执行a的时候,a发现自己被执行了,但是不是被它自己执行的,于是它就认为自己是父进程,转入父进程的处理程序;这段程序创建了一个子进程,子进程的程序还是a,但不同的是它是被a(同一个程序的不同进程)执行的,所以它转入了子进程的那个分支,处理子进程的任务
不是很理解。