メイン処理と非同期に動作してくれる便利なスレッドですが、CPUの処理能力には物理的な制限があるため、能力以上の処理をスレッドで並行処理させようとすると高付加状態が続き結果的にシングルスレッドで実行した時よりも遅くなってしまう事があります。そこで、マルチスレッドで効率的に処理を使うために同時に実行できるスレッド数を制限して負荷が集中しないようにする手法があります。クラスが用意されています。FIFO(ファーストイン・ファーストアウト)で順番に処理します。メソッド指定できるので負荷の高い処理を行う場合は同時実行スレッド数を少なめに設定するとよいでしょう。メソッドを使用します。デリゲーターを使用します。型の引数も渡すことができます。型の引数を渡す方法が用意されていますが、その場合実行部とデータ部が別の場所に存在することになりあまりスマートとはいえません。そこで私はいつもデータ部と実行部をカプセル化したワーカークラスを作成するようにしています。することで常にデータを処理を一体で管理することができ効率が増します。プロパティの内容はすべてデフォルトです。呼び出しの後で初期化を追加します。実行すると左のようになります。同時に実行されるスレッドは2つで残りはプールに貯めて実行されるのを待ちます。HTMLで作成されています。このサイトはリンクフリーです。