«前の日記(2008年01月16日) 最新 次の日記(2008年01月18日)» 編集

日々をアレコレ


2008年01月17日

スレッド生成まとめ

.NET Frameworkを使ったマルチスレッドプログラミングで、スレッドを生成する方法は3つ(厳密にはタイマを使ったスレッド生成方法もあるけどここでは除外)。

  1. System.Threading.Threadクラスを利用する。
  2. System.Threading.ThreadPoolクラスを利用する。
  3. デリゲートを利用する(実質的にはThreadPoolクラスを利用している)。

1のSystem.Threading.Threadクラスを利用するメリットは、優先順位がつけられ、停止/中断/再開ができ、生成数の制限が少ないこと。ただし、スレッドの生成と破棄を繰り返しているとパフォーマンスは低下してしまうので注意。

2のSystem.Threading.ThreadPoolクラスを利用するメリットは、複数のスレッドを効率よく実行できる(というか、あらかじめ生成されたスレッドに割り当てられる)こと。デメリットは、優先順位づけや停止/中断/再開といった操作が難しく、同時に実行できる数は制限されている。

3のデリゲートを使う方法は、基本的には2のThreadPoolクラスを利用しているが、違いとしては引数や戻り値が設定できる。ただし、1や2と違って明示的にスレッド関連クラスを利用するわけではないので、注意してプログラミングをする必要がある。

さて、これを定性的に出はなく、定量的にまとめる必要があるのだが、そんなことできるの?

印つけます

だから何が変わる、って訳でもないけれど、毎朝出勤したらほぼ日手帳の年間カレンダーのその日の日付に赤ペンで×印を打つことにした。どうせ毎日あと何日と数えるんだから何かを習慣づける癖というものを作るようにしてもいいよね。

Tags: life

«前の日記(2008年01月16日) 最新 次の日記(2008年01月18日)» 編集