Delphi相談室(上級者用)その12

このエントリーをはてなブックマークに追加
マルチスレッドでは、排他処理やスレッド同期を常にやってたのでは
せっかくのマルチスレッドが生かせない。
設計を上手くやって、同期や排他処理を必要ないようにするのがコツ。

・単ワード(CPUのデータ幅以内)で構成される整数型、ポインタ型、浮動小数点型は
  あるスレッドが読み書して、他が読むだけの使い方であれば排他処理は必要ない
  この方式でスレッド間通信に使う事も可能

・int64は2ワードとなるのでダメ
・メモリ境界をまたぐ32bit変数も デュアルCPU構成等の環境でダメなので注意


これを利用して、構造体を渡す場合も、リングバッファ構造にしてそのポインタか、配列番号を渡す
ようにすれば、同期や、OSの提供する排他処理に頼らずにすむ。