【问题标题】:Create a Pthread that runs to completion in background创建一个在后台运行到完成的 Pthread
【发布时间】:2016-10-20 04:13:01
【问题描述】:

我是 pthreads 的新手,我正在尝试用 C 语言创建自己的 shell 脚本,该脚本具有各种简单的输入,其中一些输入相当耗时。我希望能够创建一个继续处理此类任务的 pthread,同时我可以继续将 shell 用于其他命令。

但是,无论我尝试什么,我的 shell 似乎总是等到最近创建的 pthread 完成后才允许我输入其他任何内容。

我打算只使用线程而不是子进程来执行此操作,因此 fork() 在这里不是我的选择。

本质上,我的问题是如何在 shell 脚本的后台创建一个完全独立运行的线程,以便我继续使用 shell 而不会出现明显中断。

【问题讨论】:

  • 上下文好吗?你的 C 程序中产生 pthread 的部分是什么?请具体说明您的尝试。

标签: c multithreading shell pthreads


【解决方案1】:

你必须编写程序来创建一个 pthread 来执行你想做的任何事情。让我们假设你有那个程序 .exe 文件,它被称为“myProgram”。如果你想创建一个脚本,为 myProgram 提供输入,而不是“冻结”shell

#!/bin/bash
./myProgram input_1 input_2 input_3 input_4&
./myProgram input_1 input_2 input_3 input_4;

上述脚本使用 2 组命令行参数运行 myProgram 2 次。在第二行末尾使用符号“&”使 myProgram 在后台运行,因此您可以继续使用 shell。如果您想多次运行 myProgram,只需在每个运行命令的末尾添加“&”即可。每个程序执行都将在后台运行,您将能够在程序仍在运行时继续使用 shell。

【讨论】:

    猜你喜欢
    • 2018-09-11
    • 2012-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    相关资源
    最近更新 更多