[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 07/24 13:42 / Filesize : 280 KB / Number-of Response : 1007
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

結局C++とRustってどっちが良いの? 6traits



293 名前:デフォルトの名無しさん [2023/08/06(日) 22:11:02.39 ID:0QxiCITa.net]
G: このC++のコードにはデッドロック(両方のスレッドが無限に待機する状態)があります。
th0スレッドはm0をロックし、その後m1をロックしようとします。
一方、th1スレッドはm1をロックし、その後m0をロックしようとします。
これは次のようなシナリオでデッドロックになる可能性があります:
1. th0がm0をロックします。
2. th1がm1をロックします。
3. th0がm1をロックしようとしますが、m1は既にth1によってロックされているため、
th0はm1が解放されるのを待つことになります。
4. 同様に、th1がm0をロックしようとしますが、
m0は既にth0によってロックされているため、
th1はm0が解放されるのを待つことになります。
結果として、どちらのスレッドも他方がmutexを解放するのを無限に待つことになり、
デッドロックになります。
これを解決するためには、両方のスレッドがmutexを取得する順序を一貫させることが重要です。
以下に修正したコードを示します:






[ 続きを読む ] / [ 携帯版 ]

全部読む 前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<280KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef