目次へ

1. スレッド

1.1. スレッドとは

スレッドとは、プログラムを実行している主体(例えて言うなら1人の人間)です。すべてのプログラムはスレッドによって実行されています。1つのスレッドは、ひとりの人間がプログラムを1行ずつ読んでプログラムの流れを追いかけるように、命令を1つずつ解釈し処理を実行していきます。

スレッド(Thread)とはもともと「糸」という意味ですが、プログラムの実行は、糸をたぐるように順番に命令が実行されていくため、そのような名前がついています。1つのスレッドはあくまでも1本の糸であり、2つの処理を同時に行うことはありません。

Javaのプログラムを起動するには、次のように、javaコマンドにおいて実行したいクラスの名前を指定していました。

> java SomeClass

javaコマンドが実行されると、Java仮想マシンは新しいスレッドを作成し、そのスレッドによって指定したクラスのmainメソッドが実行されます。スレッドはmainメソッドの最初から順番に命令を実行していき、mainメソッドの実行が終了するとスレッドは消滅します。

1.2. マルチスレッド

Javaはマルチスレッドを取り扱うことのできる言語です。マルチスレッドとは複数のスレッドという意味です。つまりJavaでは複数の人が同時に仕事をするように、複数のスレッドを同時に実行することができるのです。

たとえば、1つのプログラムの中で、通信処理を行いながら、同時に計算処理を行うことなどができます。このような複数のスレッドを取り扱うプログラムを作成することを、「マルチスレッドプログラミング」といいます。

ところで、多くのコンピュータはCPUを1つしかもっていません。そのようなコンピュータでは、厳密には1つの処理しか同時には実行することができません。そこで、「マルチスレッド」では、通常「時分割処理」という方法が用いられています。「時分割処理」とは、短い時間間隔で実行する処理を切り替える方法です。複数の処理を頻繁に切り替えて実行することで、仮想的に複数の処理を同時に実行しているように見せかけています。

 

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp