2

Linuxで次のことを行う簡単な関数を作成する必要があります。

  • 2 つのプロセスを作成します。
  • Process1 のスレッド 1 にいくつかの小さな操作を実行させ、操作が完了したらスレッド 2 を介してメッセージを Process2 に送信します。*Process2 は、受信したメッセージを確認します。

どこから始めたらいいのかわからない

  1. ループで 0 から 1000 まで単純にカウントする 2 つの単純な関数を作成し (ループはスレッドによって呼び出される関数で実行されます)、それらをコンパイルしてバイナリを取得しました。
  2. シェルスクリプトからこれらを次々に実行しています(両方ともバックグラウンドで実行しています)
  3. process1 がループで 1000 に達したら、最初のプロセスが「完了」メッセージを別のプロセスに送信するようにします。

私のアプローチがプロセスの面で正しいかどうかはわかりませんし、これら2つの間で通信する方法がまったくわかりません. どんな助けでも大歓迎です。

ロスティンスペース

4

3 に答える 3

2

プロセスを作成するので ( を使用していると仮定しますfork())、 を参照することをお勧めしますeventfd()

eventfd()は、あるプロセスまたはスレッドから別のプロセスまたはスレッドにイベントを送信するための軽量メカニズムを提供します。s の詳細eventfd()と小さな例は、http://man7.org/linux/man-pages/man2/eventfd.2.htmlにあります。

于 2013-05-22T10:56:56.293 に答える