}
}
<运行结果>
bca(有时会出现 abc 的任意的排列)
分析:从进程执行并发来看,输出 abc 的排列都是有可能的。
原因:fork()创建进程所需的时间虽然可能多于输出一个字符的时间,但各个进程的时间片的获得却不是一
定是顺序的,所以输出 abc 的排列都是有可能的。
2.进程的控制
<任务>
修改已编写好的程序,将每个程序的输出由单个字符改为一句话,再观察程序执行时屏幕上出现的现象,
并分析其原因。如果在程序中使用系统调用 lockf()来给每个程序加锁,可以实现进程之间的互斥,观察并
分析出现的现象。
〈程序 1〉
#include<stdio.h>
main()
{
int p1,p2,i;
if(p1=fork())
{
for(i=0;i<500;i++)
评论0
最新资源