プログラム悪戦苦闘日記

はてなダイアリーからの移行(遺物)

JDK1.5.0のスレッドについてメモ

 
いずれちゃんとまとめるとして、とりあえず列挙しておく。

1.同期オブジェクト

・Lock (ミューテックス)

いわゆるミューテックスJavaはデストラクタがないので、Lock#unlock()をfinally内に書くのはお約束。
WindowsプログラムではCriticalSectionと呼ばれている。
ReentranceLock (再入可能) ってどういう意味だろう。

・Condition

wait() / notifyAll() の代わり、といったら乱暴か。先のメソッドよりも
細かい制御ができるらしい。Lockと同時に使う。

・ReadWwriteLock

Read-Write-Lokingパターンのアレ。
 

2.ユーティリティ達

・Barria

スレッドのいくつかが到達するまで待たされる場所、をつくるオブジェクト

・Exchanger

2つのスレッド間でデータを交換するオブジェクト。2つのスレッドが到達するまで、片方は待たされる。

・CountDownLatch

N回到達するまでブロックするオブジェクト。

・Semaphore (セマフォ)

いわゆるセマフォ。でも出番少ないね、コレ。
 
それ以外に CallableとかFutureとかあるけど、まだよく見てない。
 

3.コレクションクラス

・BlockingQueue

同期版キューのことか?
 

4.スレッドの関係

いままで単に、RunnableをThreadに喰わせて Thread#start()していたけど、Executorとかいうのが間に入ってきた。これらのクラスがどのように関係しているかは、まだ見てない。
 
 結構大量に加わった。でもなんでTSSとかないんだ(いや、本当はあるのか?)