开发者

Command line semaphore utility

I want to write a command line utility that can be used to synchronize the exe开发者_如何学Gocution off programs in different consoles.

Console A: 
$ first_program && semaphore -signal

Console B:
$ semaphore -wait && second_program

The first program takes a long take to complete. The second program can only start when the first program has finished.

Which synchronization object do I need to implement this?


You don't need to use Python for this. Considering you are using Unix, try this:

First, create a pipe for the semaphore.

mknod /tmp/semaphore p

Then, the programs:

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

Console B:
$ read < /tmp/semaphore && second_program

Actually, this method works both ways. The read will block until there is a write, and vice versa.


If they're on the same machine the first program can touch a temporary file.

There is a Gamin module in python that will allow your second program to sit there and wait while not tying up resources. It isn't a busy wait, or doing anything with sleep or stuff like that.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜