swchrm logs

妄想録と技術ログ

Java マルチスレッド解釈メモ

並列処理実現方法の一つ

似て非なるもの

・マルチプロセス ・子プロセス並列処理 マルチスレッドはスレッドごとにメモリ領域を確保してもらえない

うれしいこと

はやくおわる 余分なメモリを消費せず処理できる

嬉しくないこと

排他制御(下記参照)を漏らしたときにバグを発見しにくい。  そのうえ結構致命的なバグになったりする。

何種類

2種 ①Threadクラスの継承 runが走ることで新規Threadの作成 ただし実行するのはstart()でこいつを書くことでrunが走る

②Runnableインターフェースの実装

具体的な実現方法

2. スレッドの実行 (2) | TECHSCORE(テックスコア)

ワザ

・他のThreadの終了を待つ  →joinメソッド ・待ち合わせ  →waitメソッド  

気をつけることとその対応策

・変数の書き換え 例:口座預金を二箇所から1,000円ずつしたのに1,000円しか増えない →排他制御  1)Synchronizedブロック  2)Synchronizedメソッド  3)volatile変数

 ※処理時間を要する箇所には無闇矢鱈にSynchronizedを使わないこと。実行待ちになって待ちぼうけ。  →極力適用範囲を狭くする

その他

・プロセスとの違い http://moro-archive.hatenablog.com/entry/2014/09/11/013520#5 ・やらかしたら  発見しにくい。見つけにくい。サイアク。