2016-10-20 4 views
-2

私はpthreadsが新しく、さまざまな単純な入力を持つ独自のシェルスクリプトを作成しようとしています。その中にはかなり時間がかかるものがあります。私は他のコマンドのためにシェルを使い続けている間に、このような作業を続けているpthreadを作りたいと思っています。バックグラウンドで完了まで実行されるPthreadを作成します。

しかし、自分のシェルを試しても、最後に作成されたpthreadが完了するまで待ってから、他のものを入力できるようになります。

私はこれを子プロセスではなくスレッドで行うつもりです。だからfork()は私にとってここのオプションではありません。

本質的に私の質問は、完全に独立して実行されるスレッドを、シェルスクリプトのバックグラウンドで完全に実行して、シェルを重大な中断なしで使用し続ける方法です。

+0

文句を言いますか? pthreadを産んでいるCプログラムの部分は何ですか?あなたが試したことに特化してください。 – esecules

答えて

0

あなたがしたいことを何でもするpthreadを作成するプログラムをコーディングする必要があります。あなたはそのプログラムの.exeファイルを持っていると仮定し、それは 'myProgram'と呼ばれています。あなたはMYPROGRAMへの入力を提供するスクリプトを作りたい場合は、シェル

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

を「凍結」されていないが上記のスクリプトは、コマンドライン引数の2セットでMYPROGRAM 2回を実行します。 2行目の末尾にシンボル「&」を使用すると、myprogramがバックグラウンドで実行されるので、シェルを使い続けることができます。 myProgramを複数回実行する場合は、各実行コマンドの最後に '&'を追加するだけです。各プログラムの実行はバックグラウンドで実行され、プログラムが実行されている間はシェルを使い続けることができます。

関連する問題