タグ

ブックマーク / tabesugi.net (2)

  • 2008/10 b ネットと匿名について

    s-e-l-f n-a-rr-a-t-i-v-e. /01 [6] (08:35) oya、ゆうべはパソコニの電源を切らずに眠ってしまったらしい。 よくないこった。 /31 [5] (08:02) ああ、シメキリが…。(来は締切ではなくて、納期というべきであ) けさも寒いね! (23:17) わざと? わざと。 さて、きのうはまた自分が書いたコードで、 やたらと原始的なバグを発見してしまった。だいたい、以下のようなコードである: typedef struct _buffer { char* ptr; int size; int len; } buffer; /* バッファbufの末尾に nバイトの文字列を追加する。 */ void append(buffer* buf, char* s, int n) { if (buf->size < buf->len+n) { /* バッファが足りな

  • マルチスレッドプログラミングは難しい

    C# を使って、複数スレッドで協調動作する簡単なメッセージキューの 作成がいかに苦労するかというのをお見せします。(約62分) まとめ: キューのみ → エラーになる。 キュー + spin lock (ポーリング) → 動くけどCPUの無駄。 キュー + ウェイト×1 → 一度に複数回 送られたらダメ。 キュー + ウェイト×2 (ぎっこんばったん方式) → queue じゃない。 キュー + ウェイト + 条件判定 → 受け取り側が複数個あるとダメ。 キュー + Semaphore → ようやく完成。 マルチスレッドプログラミングは世界を滅ぼす。 参考資料: Unixで動くC#コンパイラ: gmcs (Mono), cscc (dotgnu, C#) エディタ: Emacs で csharp-mode.el。 文書: monodoc, ECMA-335。 (新山はこのツールでXMLをプ

    rryu
    rryu 2010/03/21
    動画見るのが面倒という人向けにまとめてみた。http://d.hatena.ne.jp/rryu/20100328/1269799566
  • 1