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回到達するまでブロックするオブジェクト。
3.コレクションクラス
・BlockingQueue
同期版キューのことか?
4.スレッドの関係
いままで単に、RunnableをThreadに喰わせて Thread#start()していたけど、Executorとかいうのが間に入ってきた。これらのクラスがどのように関係しているかは、まだ見てない。
結構大量に加わった。でもなんでTSSとかないんだ(いや、本当はあるのか?)