【发布时间】:2016-02-15 22:56:30
【问题描述】:
假设有两个进程并且它们的 pid 是彼此已知的:
void proc_1(){
printf("1\n");
printf("3\n");
}
void proc_2(){
printf("2\n");
printf("4\n");
}
如何使用 posix 命名信号量来同步上述进程,以便输出如下所示:
1
2
3
4
我的第一个想法是(假设有两个信号量,sem_1,sem_2,它们的初始值都是0):
void proc_1(){
printf("1\n");
sem_post(sem_2);
sem_wait(sem_1)
printf("3\n");
exit(0);
}
void proc_2(){
sem_wait(sem_2);
printf("2\n");
sem_post(sem_1);
waitpid(pid_1);
printf("4\n");
}
【问题讨论】:
-
你尝试的时候发生了什么?
标签: c synchronization semaphore