2006-07-08から1日間の記事一覧

2.5 Liveness and performance

synchronizedブロックの中でアトミック変数を使用する必要はない。 しばしば、ロジックの単純さとパフォーマンスの間での衝突が起こる。 同期化機構を実装するとき、パフォーマンスのために簡潔さ(潜在的な安全への妥協)を 犠牲にする誘惑に耐えてください…

2.4 Guarrding state with locks

ある状態変数に書き込みをするときだけ、ロックをかければよいというのは正しくなくて、変数に対してアクセスするときはいつでも行う必要がある。 ひとつ以上のスレッドによってアクセスされるかもしらない可変な状態変数にとって、 その変数に対する全ての…

2.3 Locking

クラスの状態を管理するために複数のオブジェクトを使用する場合、それぞれがたとえアトミックであっても正常に動作しない。 状態の首尾一貫性を保つために単一のアトミック操作で関連する状態変数を更新しなさい。 2.3.1 Intrinsic locks javaには排他的ロ…

2.2 Atomicity アトミック性

たとえばステートレスなサーブレットにカウンターをあらわす変数を追加するとスレッドセーフではなくなる。 この例では同時に2つのスレッドがアクセスしたとき、初期値が9だったら、片方は10でもう片方は11を返さなければならないが、10になってしますかもし…

2.1 What's thread safety? (スレッドセーフとは何ぞや?)

複数のスレッドからクラスが安全に使われていることをスレッドセーフと巷はでは言われている。 分かりやすいスレッドセーフの定義に重要なことは「正当性」の概念があるが、その「正当性」に対する明確な定義がない。 あるクラスには明示に従う。明示とはオ…

これから頑張ってみる。 寝ちゃった。コーヒー直後に1時間爆睡の俺って。。。 ひとまず、大事そうな部分をピックアップして記載。 明日の午前中に見直す。