この行を使用して、Java アプリケーションから Python スクリプトを実行しました。
Process process = Runtime.getRuntime().exec("python foo.py", null, directory);
このスクリプトは、Java アプリや他のクライアントと通信する TCP サーバーを実行します。
スクリプトをデバッグしていたとき、あちこちにいくつかのコンソール プリントがあり、すべて問題ありませんでした。スクリプトが Java Code から起動されるとすぐに、TCP サーバーが一定時間応答しなくなりました。しばらくデバッグとフラストレーションを感じた後、スクリプトからプリントを削除したところ、すべてが期待どおりに機能しました。
プロセスの標準出力とエラー ストリームにメモリが割り当てられているようです。それを消費しないと、フル バッファに書き込もうとしてプロセスがスタックします。
標準出力ストリームを消費する必要がないようにプロセスを起動する方法は? デバッグのために出力を保持したいのですが、必要のないストリームを読み取るスレッドを開始したくありません。