問題タブ [multiprocess]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4996 参照

android - 別のプロセスで実行されている 1 つの Android アプリケーションのアクティビティ。`android:multiprocess` は何をしますか?

大局

2 つの Android アプリケーションHostGuest. Guestでアクティビティをすぐに開くようなアクティビティを実行しようとしていHostます。Guestアプリケーションの起動はで実行される必要がありますHostが、 として実行されているように見えますGuest(つまり、ユーザーは、ゲストの面倒な作業を行っているにもかかわらず、ホストの存在をすべての意図と目的で認識しないようにする必要があります)。

この質問は、そのHostアクティビティを に属するプロセスで実行することに関するものHostです。

なぜこれをやりたいのかは、おそらくこの質問の範囲外ですが、間違いなくやりたいことです)。

私が以前に試したこと

まず、プロセスを残りのHost活動から分離するだけで十分だと考えられていました。

これを行うため<activity>に、マニフェストの要素でプロセスに名前が付けられました。

次の 2 つの理由から、これには問題があることが判明しました。

  • それはうまくいきましたが、複数のゲストに直面すると、非常にハックで面倒になります。
  • ユーザーがアプリを管理できるようにする標準の Android ツールが機能しません (たとえば、最近のアプリ リストからアプリをスワイプするなど)。
  • プロセス名はコンパイル時に認識されている必要があります。

android:multiprocess

AndroidManifest.xml のドキュメントを見ると、役立つと思われるこのアクティビティ属性が見つかりました。

android:multiprocess

アクティビティのインスタンスを、それを開始したコンポーネントのプロセスに起動できるかどうか (できるtrue場合とできfalseない場合)。デフォルト値は ですfalse

通常、アクティビティの新しいインスタンスは、それを定義したアプリケーションのプロセスで起動されるため、アクティビティのすべてのインスタンスが同じプロセスで実行されます。ただし、このフラグが に設定されているtrue場合、アクティビティのインスタンスは複数のプロセスで実行できるため、システムはインスタンスが使用される場所ならどこでもインスタンスを作成できます (パーミッションで許可されている場合)。

このドキュメントを読むと、これが私が探しているものである可能性があります。「アクティビティを開始できる」「アクティビティを開始したコンポーネントのプロセスに」というよりも、「アクティビティ開始された」と言った方がいいと思います。

残念ながら、そうではないようです。からの起動HostアクティビティはGuest、 によって測定されるように、常に異なるプロセスになりandroid.os.Process.myPid()ます。

私がやろうとしていることを示すダミーアプリケーションのペアを用意しました:

  • インストールしHostます。
  • インストールして実行するGuest
  • 起動されたアクティビティには、数字 (ゲストの pid) と 3 つのボタンがあります。最初の 2 つのいずれかをクリックすると、2 番目のアクティビティが起動します。2 番目のアクティビティには、最初のアクティビティと同じ番号が表示されtrueます。これは、ホストとゲストが同じプロセスで実行されていることを示しています。

残念ながら、そうではないようです。

TL;DR

さまざまなアクティビティからアクティビティを取得して、呼び出し元のアプリケーションが所有する同じプロセスで実行するにはどうすればよいですか?

android:multiprocess要素で実際に何をしactivityますか?

編集:私が望んでいるものを示す最小限の例があります。MainHostActivityがと同じ数字になったら成功ですMainGuestActivity。番号はandroid.os.Process.myPid()です。

0 投票する
1 に答える
492 参照

python - 親が終了した後も、実行時間の長い python 関数の実行を継続できるようにするにはどうすればよいですか?

httpリクエストハンドラーの一部として実行される、長時間実行されるpython関数があります(フォームで選択されたさまざまなオプションに関連付けられています)。

http 要求ハンドラーは、関数の実行が完了するのを待ってから、発信元に適切な応答を返します。

ただし、関数の実行には時間がかかる場合があるため、その間にリクエストが中断される可能性があります。これにより、リクエスト ハンドラが停止し、実行時間の長い関数の実行が中断されます。これは望ましくありません。関数が呼び出されるたびに実行が完了するようにしたいのです。

サブプロセスを使用して遊んだことがありますが、リクエスト ハンドラーが終了するとすぐに終了するようです。

別のスレッドまたはプロセスで関数を起動して、その親よりも長く存続できるようにすることはできますか?


デーモンはおそらく私の問題を部分的に解決しているようです-それらは親よりも長生きできますか? -しかし、親プロセスが子プロセスの結果を監視/アクセスできるようにしたいと思います。

あれは:

  • 親プロセス、子プロセスより先に終了する場合があります。この場合、子プロセスを完了させたい
  • 親プロセスがまだ生きている限り、子プロセスにアクセスしたり、監視したりしたいと思います...親プロセスが死なない場合は、アクセスできるようにしたいと思います子供が行っていた処理の結果。
0 投票する
1 に答える
671 参照

python - subprocess と multiprocess モジュールの結合

私は大量のデータを噛むための小さなパイプラインを作成しており、python を使用して複数のコアを使用してプログラムを呼び出すことにしました。

だからここに私の質問があります:

1) プログラムは非常に大きなテキスト ファイルを出力します。出力を新しいファイルに保存したいだけです (したがって、文字列を python オブジェクトとして保存しないでください)。 subprocess モジュールを使用してこれを行う最良の方法は何ですか?

2) マルチプロセスモジュールを使用して、プログラムを並行して何度も呼び出したい。通常は単純な方法で Pool.map 関数を使用しますが、これは subprocess モジュールに干渉しますか?

前もって感謝します!

0 投票する
0 に答える
154 参照

python - マルチプロセッシングPythonのスレッドの複数のインスタンスを防ぐ

メールを定期的に送信するためのスレッドを実行したい。同じプログラムで、別のタスクを実行するプロセスを作成しています。タスクを作成すると、元のプロセスのスレッドがこれらのサブプロセスにコピーされ、1 通ではなく複数のメールを受け取ることになります。メイン プログラムで実行するスレッドが、作成されたサブ プロセスにコピーされないようにするにはどうすればよいですか?

0 投票する
1 に答える
496 参照

c - サーバー、クライアントのデバッグ

C でマルチプロセス サーバーを作成していますが、プログラムをデバッグおよびテストするための最適なツールは何ですか? 具体的には、クライアントに送信されているものとその逆です。ご協力ありがとうございました。