第18講 マルチスレッドプログラミング 
第2話 マルチスレッドとは?

シングルスレッドしかできないVBAのプログラムは、処理は直列処理です。
直列処理とは、
A→B→C→D→・・・
と順番に処理していくことです。
つまり直線的に処理していくことです。
if文の説明のときに、流れを分岐させることができると説明しましたが、
シングルスレッドであればやはり直線的処理です。

l01

というのはCの方を選んだとしても、
A→B→C→E→I→・・・
と流れていくだけです。
Dを選んでも
A→B→D→F→・・・
と直線に流れることは変わりません。
その後の分岐もどう選ぼうと
A→B→D→F→H→・・・
と直線で流れていきます。

入門

処理系列は、常に1つです。
4コア(CPUが4つ)のコンピュータにおいてCPU使用率が25%になってしまうのは、
処理系列(スレッド)が1つにすぎないからです。
ですから、処理系列(スレッド)を4つにすることができればCPU使用率100%も実現できることになります。
実際に、
第1話の例素数探索プログラム
C++
はスレッドを4つ起動してCPU100%を実現しています。
マルチスレッドとは、もともとあったルートスレッドから新しくスレッドを起動してスレッドを複数にすることです。
C++
図の3つのスレッドは並列に処理されます。
つまり、同時に処理されるのです。
直列処理が1つの直線処理だったのに対して、
複数の直線に分岐してそれらが同時に処理されている状態がマルチスレッド=並列処理です。
では新たにスレッドを起動するにはどうしたらよいのでしょうか。


第1話へ 第3話へ

戻る

C言語 C++講義第1部へ
VB講義へ
VB講義基礎へ

vc++講義へ第1部へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)