命令行信号量实用程序

com*_*pie 2 command-line synchronization semaphore utility

我想编写一个命令行实用程序,可用于同步不同控制台中的程序执行.

Console A: 
$ first_program && semaphore -signal

Console B:
$ semaphore -wait && second_program
Run Code Online (Sandbox Code Playgroud)

第一个程序需要很长时间才能完成.第二个程序只能在第一个程序完成时启动.

我需要哪个同步对象来实现它?

pet*_*ohn 5

您不需要使用Python.考虑到你使用的是Unix,试试这个:

首先,为信号量创建一个管道.

mknod /tmp/semaphore p
Run Code Online (Sandbox Code Playgroud)

然后,程序:

Console A:
$ first_program && echo a > /tmp/semaphore

Console B:
$ read < /tmp/semaphore && second_program
Run Code Online (Sandbox Code Playgroud)

实际上,这种方法有两种方式.读取将阻塞,直到写入,反之亦然.