タグ

ブックマーク / nagise.hatenablog.jp (2)

  • Threadの割り込みを活用する - プログラマーの脳みそ

    確実に一定時間スリープする - terazzoの日記ではThreadの割り込みがあっても確実に一定時間の停止を試みているが、そもそもこのようなコードは書いてはいけない。 Thread.sleep()は一定時間止まるための便利メソッドとしてよく知られているが、そのときに発生するInterruptedExceptionについての理解は広まっていない気がする。割り込みとはなんなのか。どういう時に使うのか。 目覚まし時計 お昼休みに昼寝をしようとする。寝過ごすといけないので15分後にアラームを鳴らす設定をした。 さて、ひと眠りするか、というところに友人がやってきた。昼寝はやめて売店に行くことにした。果たして売店でアラームが鳴り始めた。 さて、このとき、アラームは15分間の待機を命じられたわけだけども、お昼寝がキャンセルされたことで、もう待機しなくてよくなってしまった。むしろ、さっさと待機をやめてく

    Threadの割り込みを活用する - プログラマーの脳みそ
    chuwb
    chuwb 2011/12/06
  • 生成系デザインパターンをライブラリ化するには - プログラマーの脳みそ

    デザインパターンによる定型的な構造を何度も何度もプログラムしていると、デザインパターンそのものをライブラリ化して再利用してしまいたいと考えるようになる。 そんなさなかにジェネリクスのテクニック*1を覚えると、いままで不可能だったStrategyパターンとかAbstract Factoryパターンとかのライブラリ化ができるようになって、スゲーッ!これで怖いものなしだぜ!とか思いあがるわけだけど、他のデザインパターン、具体的にFlyweightパターンなんかをライブラリ化しようとして言語仕様上のどうしようもないところにぶち当たって挫折してしまうものなんだ。 ここでFlyweightパターンについて簡単に説明すると、同じ値を持つインスタンスは単一であることが保証されるというデザインパターンだ。Javaでは列挙型がこの挙動を示す。列は常に同じ値のものは同じ参照に集約される。Stringも近い挙動を

    生成系デザインパターンをライブラリ化するには - プログラマーの脳みそ
  • 1