IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.
マルチスレッドプログラムのバグ 首藤 一幸 産業技術総合研究所 グリッド研究センター 注: このページの文章は JavaWorld 誌 2002年 1月号に掲載された以下の記事の元原稿です。 JavaWorld 誌編集部の了承の元に、本ウェブページに掲載しております。 首藤一幸, "マルチスレッドプログラムに対するデバッギングの心得", 月刊ジャバワールド 2002年 1月号, pp.64-73, IDGジャパン, 2001年 11月 もくじ 序文 1. はじめに 2. レース状態 3. ロック 4. Java言語のモニタ 5. デッドロック スレッドの異常終了によるデッドロック Threadクラスのstop()とsuspend()メソッド 6. 再現性の低さ 7. 予防が肝腎 8. デバッグ assertion機能 デッドロックの検査 9. 注意一秒ケガ一生 参考文献 序文 スレッドは
単純なロックの問題点 Java にはマルチスレッドプログラミングにおける一般的な排他制御を記述するのに適した synchronized ブロック、synchronized メソッドという構文があり、保護したいデータにアクセスする全てのコードをこれらの構文を使って同期化すれば、排他制御は簡単に実現できる。しかし、この方法には問題もある。例えば電子掲示板システムのログデータにこの方法を適用することを考えてみよう。 電子掲示板に対するアクセスを全て同期化するということは、一度に一人のユーザしかログにアクセスできないということである。なんらかの理由(サーバ・クライアント間の回線速度やクライアントの処理速度の低下など)でログの読み込みに時間がかかっているユーザが一人れば、サーバ側の計算機資源にいくら余裕があっても、その間は他の大勢のユーザは掲示板にアクセスできない。すなわち計算機資源の利用効率が著し
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く