也许这是一个“我不知道我在问什么”的问题,所以如果我必须知道一些事情,请告诉我。
运行带有参数或不带参数(程序路径/名称参数除外)的程序时,将启动一个进程。我们可以多次运行程序,因此将启动多个进程。我正在寻找某种方法来在多次运行程序时保持一个进程。像单身人士。例如
使用伪代码:
...
bool tasksCompleted = false;
...
while !tasksCompleted{
input = waitForNewInputFromConsole();
launch_new_thread(HandleInput, input);
}
在控制台中:
>do_cool_stuff a b c - one process is launched, arguments a, b and c are passed, now HandleInput is handling them in new thread nad we're now wating for new input from console.
>do_cool_stuff x y - we have still one process, and x and y are passed, HandleInput is handling them in new thread, we're again waiting for more data.
如果您知道我的意思,并且可以帮助我解决这个问题,请这样做。
感谢前进, 欢呼。
答案 0 :(得分:0)
让我看看我是否可以改写这个问题。您有程序Foo。也许从命令行中有人说“一直都是Foo”。它启动程序Foo。
然后那个人说:“再次让我着迷”,它第二次启动了Foo。
但是,您不希望它启动第二个副本,而是以某种方式将参数提供给第一个程序?如果我了解您的要求:您真的不知道。
您应该做的就是让Foo变得非常聪明。第二个副本将检测到已经有一个副本在运行,并将数据提供给它,然后退出。您可以使用共享内存,磁盘共享数据或设置套接字尝试与之通信。但是您的程序然后需要问自己是否正在运行,并且可以获取更多数据。很多工作。