スレッドごとにローカルなシングルトン(的なもの)
// TODO: あとでちゃんと動作確認 (なお、CodeContract 関連以外は動作確認済みである)
C# でスレッドごとに固有のインスタンスを提供できるようにするという小ネタ。
エントリの変更点
09/02/01
- スレッドセーフさについて言及を増やした
- エントリ内部を小見出しで分けた
ただの Singleton
なお、スレッドごと、でなく AppDomain*1ごとの Singleton で良ければ、
sealed class HogeClass{ /// <summary>Singleton なインスタンス。</summary> public static readonly Instance = new HogeClass(); /// <summary>コンストラクタを好きに呼ぶことは出来ない。</summary> private HogeClass(){ ... } }
// 常に同じインスタンスが返ってくる
HogeClass.Instance;
という風に簡潔に実現できる。このような public static readonly を使った本来の意味でのシングルトンはスレッドセーフであり、かつ高速であるので、普通のシングルトンならばこれで問題ない*2。
ここで、スレッドに関係なく同じインスタンスが返ってくるところを、下のイメージのようにするのがこのエントリの趣旨である。
// アクセスするスレッドごとに別のインスタンスが返される // 同じスレッドからなら同じインスタンスが反ってくる HogeClass.Instance;
MessagePack の扱えるプリミティブ型まとめ
MessagePack の扱えるコンテナ型まとめ
MessagePack の C/C++ バインディング上で扱うことの出来るデータ構造に付いてのエントリその 2 である。
その1 はこちら: MessagePackの扱えるプリミティブ型まとめ
このエントリでは、値を任意数格納できるコンテナ型について述べようと思う。
参考: MessagePack公式
参考: id:viver の blog
MessagePack のエンコーディングフォーマット 概要編
MessagePack 互換実装を作るためには、どうあれ MessagePack のエンコーディングがどのようなフォーマットなのか調べる必要がある。
というわけで、まずはフォーマットの概略をまとめてみた。
関連エントリ
- id:viver の blog が本家&一次情報ですぞ
- MessagePack の扱えるプリミティブ型まとめ
- MessagePack の扱えるコンテナ型まとめ
筑波大学術情報センターの無線 LAN
参考: FreeBSDいちゃらぶ日記
筑波大学で、大学内の学術情報センターというところが提供している学内向けに提供されている無線 LAN というものがあるのだが、この認証機構がこまったさんだという話。
続きを読む