2006-01-01から1ヶ月間の記事一覧

Java言語で学ぶデザインパターン入門 マルチスレッド編 第6章 Read-Write Lock

読むのは同時にできるけど誰かが読んでいるときは書き込めない。誰かが書き込んでいる間は読むのも書くのもできない。読む処理どうしは排他されないのでパフォーマンスが上がる。 public class ReadWriteLock { public synchronized void readLock() { while…

Java言語で学ぶデザインパターン入門 マルチスレッド編 第5章 Producer-Consumer

一方でどんどんデータを生成し登録していき、他方でどんどんデータを取り出して利用するパターン。イベントディスパッチャなんかでよく使うね。 public class Channel { private List queue = new LinkedList(); public synchronized void put(Data data) { …

Java言語で学ぶデザインパターン入門 マルチスレッド編 第4章 Balking

Balkingは「ボーキング」で、「やめて帰る」こと。野球のボークね。Guarded Suspensionは条件が満たされるまで待つんだけど、Balkingは条件が満たされなかったすぐ終了する。 public class GuardedObject { public synchronized void guardedMethod() { if (…

Java言語で学ぶデザインパターン入門 マルチスレッド編 第3章 Guarded Suspension

ある条件が満たされないと実行できない処理があって、別のスレッドがその条件を変化させることによって実行を制御するパターン。「条件付きのsynchronized」「マルチスレッド版のif」だそうです。 public class GuardedObject { public synchronized void gu…

Java言語で学ぶデザインパターン入門 マルチスレッド編 第2章 Immutable

マルチスレッドで困るのはインスタンスの状態を変化させる時に矛盾が生じてしまうことなので、状態を変化させることができないならばマルチスレッドでも何ら問題ない。とゆーわけで、コンストラクタで生成した後は状態を一切変化できないようにするのがImmut…

Java言語で学ぶデザインパターン入門 マルチスレッド編 第1章 Single Threaded Execution

AWDwRを読み終わって日記を書くモチベーションが下がっちゃったんで、新しい本を読んで行こうかな。で、今の案件でマルチスレッドを扱うので「Java言語で学ぶデザインパターン入門 マルチスレッド編 」を読むことにしましたよ。(って、今からかよっ!) Java…

「Agile Web Development with Rails 勉強記」まとめ

Chapter 7 "Task B: Catalog Display" Chapter 8 "Task C: Cart Creation" 8.1 Sessions, 8.2 More Tables, More Models, 8.3 Iteration C1: Creating a Cart 8.4 Iteration C2: Handling Errors, 8.5 Iteration C3: Finishing the Cart Chapter 9 "Task D: …