LoginSignup
1
2

More than 5 years have passed since last update.

オブジェクト指向でなぜつくるのか 第5章 ~補足~

Posted at

本について

image.png

Amazon: https://www.amazon.co.jp/dp/4822284654

以前「オブジェクト指向でなぜつくるのか-第2版-」の第5章に書かれているオブジェクト指向プログラミングにおけるメモリの使われ方をまとめました。そのときにまとめきれなかったことを補足としてまとめます。

記事: オブジェクト指向でなぜつくるのか 第5章

プログラムの基本的な実行方式

コンパイラ方式

プログラムを機械語に一括変換してから実行する方式

oop-コンパイル式.png

長所: コンピュータが機械語を直接読むため実行効率が良い
短所: コードを修正するたびにコンパイルしなければならない(手間がかかる)

インタプリタ方式

プログラムを逐次解釈しながら実行する方式

oop-インタプリタ式.png

長所: 書いたプログラムをすぐに実行して確認できる、プラットフォームに関係なく実行できる
短所: 逐次解釈しながら実行するので、実行効率が悪い

中間コード方式

プログラムを特定の機械語に依存しない中間コードにコンパイル後、仮想マシンで解釈しながら実行する方式

oop-中間コード方式.png

長所: 異なるマシンに同じプログラムを配布できる上、コンパイラにより実行効率も上がる
: Java, .NETなど

ここでいう 仮想マシン とは、中間コードを機械語に変換する仕組みを示し、 Java の場合は Java VM という仕組みがこれに相当します。

クラスやポリモーフィズム、継承がコードレベルでの大規模な再利用を実現しましたが、仮想マシンはソフトウェア部品を様々なプラットフォームで再利用できるようにしました。

マルチスレッド

ここで説明する スレッド とは、「プログラムの実行単位」を意味しています。

プログラムの実行単位にも種類があり、メーラーやWebブラウザといったパソコン上で独立して動くアプリケーションは プロセス と表現されます。 スレッド とは、メールの送受信やWebブラウザのリクエスト処理といった、プロセスよりも小さな実行単位のことを指します。

oop-スレッドとプロセス.png

パソコンを操作すると、複数のスレッドが同時進行しているように見えますが(Webブラウザでページを描画しながら、メールの送受信を行うなど)、CPUが一時点で実行できる処理はひとつだけです。

なぜ複数のスレッドが同時進行で実行されているように見えるかというと、複数のスレッドを非常に少ない時間で少しずつ順繰りに実行しているからです。

このようにスレッドを複数同時に実行できる環境を マルチスレッド環境 といいます。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2