创建一个在后台运行到完成的Pthread

时间:2016-10-20 04:13:02

标签: c multithreading shell pthreads

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

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

我打算单独使用线程,而不是子进程,所以fork()在这里不是我的选择。

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

1 个答案:

答案 0 :(得分:0)

您必须对创建pthread的程序进行编码,该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。