デッドロック解決方法(マルチスレッドプログラム)

デッドロック解決方法(マルチスレッドプログラム)

毎回数時間に100回ずつプログラムを実行する必要があります。状態が疑われますが、まだプログラムを作成していないため、デバッグできません。

私はそうする可能性がほとんどないと思いますが、Linuxの他のすべてから隔離または隔離された方法でアプリケーションを実行する方法(おそらく簡単な方法)はありますか? (複数の仮想ボックスを使用する必要はありません。:P)

答え1

このプログラムが何をしているのかを知ることができます(共有メモリ、ミューテックス、同じ名前のファイル、各インスタンスが上書きされている場合はtmpディレクトリを確認できます)。努力するストレスそれ?

問題の程度はわかりませんが、次のものを使用できます。ルーストアバウト-https://wiki.archlinux.org/index.php/Docker軽量コンテナまたはビューの作成キベス・オス隔離環境の作成https://qubes-os.org/または、このプログラムを試してください。根を引いた環境

答え2

KaPが言ったように:それを追跡します。一時停止中に -p を使用して strace を開始できます。

別のユーザーとして実行している場合(1ユーザーあたり1コピー)、問題を再現できますか?

運が良ければ、プログラムが同時に始まる時だけデッドロックになります。このような場合は、GNU Parallelで「--delay」を使用して次の作業の開始を遅らせてください。

関連情報