【问题标题】:Running the program multiple times while keeping one process多次运行程序,同时保持一个进程
【发布时间】:2019-07-06 16:17:37
【问题描述】:

也许这是一个“我不知道我在问什么”的问题,所以如果我有什么需要知道的,请告诉我。

在运行带有或不带参数的程序时(不包括程序路径/名称参数),会启动一个进程。我们可以多次运行程序,因此将启动多个进程。而且我正在寻找某种方法来在多次运行程序时保留一个进程。像单身的东西。例如

在伪代码中:

...
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.

如果你知道我的意思,并且可以帮助我解决这个问题,请这样做。

提前致谢, 干杯。

【问题讨论】:

    标签: c++ terminal process console


    【解决方案1】:

    让我看看我是否可以改写这个问题。你有程序 Foo。也许从命令行,有人说“Foo all the time”。它启动程序 Foo。

    然后这个人说,“Foo me again”,它再次启动 Foo。

    但是,您不希望它启动第二个副本而是以某种方式将参数提供给第一个程序?如果我明白你在问什么:你真的不能。

    你可以做的是让 Foo 非常非常聪明。第二个副本将检测到已经有一个副本正在运行并将数据提供给它然后退出。您可以使用共享内存、磁盘共享的数据或设置一个套接字来尝试与之通信。但是您的程序需要询问自己是否正在运行并且可以获取更多数据。很多工作。

    【讨论】:

    • 是的,正是我想做的。我会考虑的,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 2020-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多