java
読むのは同時にできるけど誰かが読んでいるときは書き込めない。誰かが書き込んでいる間は読むのも書くのもできない。読む処理どうしは排他されないのでパフォーマンスが上がる。 public class ReadWriteLock { public synchronized void readLock() { while…
一方でどんどんデータを生成し登録していき、他方でどんどんデータを取り出して利用するパターン。イベントディスパッチャなんかでよく使うね。 public class Channel { private List queue = new LinkedList(); public synchronized void put(Data data) { …
Balkingは「ボーキング」で、「やめて帰る」こと。野球のボークね。Guarded Suspensionは条件が満たされるまで待つんだけど、Balkingは条件が満たされなかったすぐ終了する。 public class GuardedObject { public synchronized void guardedMethod() { if (…
ある条件が満たされないと実行できない処理があって、別のスレッドがその条件を変化させることによって実行を制御するパターン。「条件付きのsynchronized」「マルチスレッド版のif」だそうです。 public class GuardedObject { public synchronized void gu…
マルチスレッドで困るのはインスタンスの状態を変化させる時に矛盾が生じてしまうことなので、状態を変化させることができないならばマルチスレッドでも何ら問題ない。とゆーわけで、コンストラクタで生成した後は状態を一切変化できないようにするのがImmut…
AWDwRを読み終わって日記を書くモチベーションが下がっちゃったんで、新しい本を読んで行こうかな。で、今の案件でマルチスレッドを扱うので「Java言語で学ぶデザインパターン入門 マルチスレッド編 」を読むことにしましたよ。(って、今からかよっ!) Java…
どうするのがいいんでしょ。1つのオブジェクトを返すメソッドに分割する、インスタンス変数に入れるというのはナシね。 1. 結果を入れるオブジェクトを引数で渡す Foo foo; Bar bar; setFooBar(foo, bar);引数への代入がイヤン。 2. Objectの配列(またはLis…
「過去の自分が書いたコードが健全になるように修正するもの」って数分前の自分は過去の自分?自分の場合を思い返してみると、最初に思いつくままにざっと書いて、次に書いたコードをじーっと見て、それから変数名やメソッド名をよりふさわしいものに修正し…
「IDDヲヤレルノ.DOC」より ふむふむ。ちょっと見てみようっと。今、手ごろなORマッパ−探してるんだよね。ところでS2DaoはS2なしでも動くのかなぁ。(ってS2使えよ、おいっ!)
というわけで一昨日、昨日と寝てしまったんで遅い反応なんだけど… これ、いいなぁ!使ってみた〜い! パスがuser_list.doなら、アクションクラスはUserListAction、アクションフォームはUserListForm、フォワード先JSPはuser_list.jspという名前付けルールに…
どうすればいいんでしょ? インスタンスメソッドであれば public class Foo { public String getClassName() { return this.getClass().getName(); } }でよいし、クラスメソッドでも public class Foo { public static String getClassName() { return Foo.c…
JSFもやんなきゃ。
rubyやろうかなぁ。