0

マルチスレッドのクライアント サーバー アプリケーションがあります。サーバー側で std::list が破損し、SEGV が発生します。2 つのスレッドが同時に std::list を更新し、それが破損する原因となる、ある種のクロススレッド タイミングの問題が発生していると思われます。

これを追跡するための無料のツールや役立つ戦略を提案してください。

4

1 に答える 1

0

同時アクセスが原因で破損している共有データ構造がわかっている場合は、データ構造にミューテックスを配置して、一度に 1 つのスレッドのみがアクセスできるようにしてから、再試行してください。

同時スレッドによって共有データが更新されないようにする必要があります。複数のスレッドの読み取りは問題ありませんが、複数のスレッドの読み取りと 1 つ以上の書き込みには注意する必要があります。

使用しているOSとコンパイラを指定できますか?

于 2010-04-30T02:05:13.900 に答える