見出し画像

新プログラミング等専門用語解説9(プログラミング系)

REV11

ソフトウエア工房孫風雅です。

ブログ投稿しています。複数画像付き等最終版は此方から、ご覧ください。

今回は既に引用している幾つかの言葉と新規の用語を先ず挙げてから、一つ一つの用語についてボリュームを確認しながら、確認・解説したいと思います。(一部用語の、移動・纏めを行いました)

引用済み&新規用語一覧(主にプログラミング系です)(紫色用語は取り上げ済みです)青色用語は今回ご説明するアイテムです)

  1. インタプリタ型/コンパイラ型

  2. AndroidOS

  3. iOS

  4. オブジェクト指向

    1. オブジェクト

    2. インスタンス

    3. クラス

    4. 継承

    5. ポリモーフィズム

    6. インターフェース

    7. オーバーライド/オーバーロード

    8. コンストラクタ

    9. カプセル化

    10. デリゲード

    11. イテレータ

    12. アクセサ

    13. ジェネリクス

    14. アノテーション

    15. UML

    16. デザインパターン

    17. TBD

    18. TBD

  5. 手続き型プログラミング

  6. イベント駆動型プログラミング

  7. 関数型プログラミング

  8. 変数

    • グローバル変数

    • ローカル変数

  9. WEBアプリケーション

  10. DLL

  11. マルチスレッド

  12. XML

  13. スコープ

  14. 値型

  15. 参照型

  16. 関数

  17. メソッド

  18. ポインタ

  19. 例外処理

  20. 同期処理

  21. 非同期処理

  22. フレームワーク

  23. アルゴリズム

  24. API

  25. ライブラリ

  26. データ構造

  27. TBD

今回は、マルチスレッドについてコメントしてみたいと思います。

マルチスレッド

マルチスレッドとは、皆さんもご存じとは思いますが、マルチの言葉通り、複数の処理を基本的に並列で行う事を指します。

マルチスレッドのメリットは既に記しましたように、並列・同時に処理を行える点にあります。

結果、マルチスレッドであれば、余り重たい処理を沢山、同時に始めなければ、一つ一つの処理が終了するのを待ってから、各々の処理を実行するより、早い時間で最後の処理が終わると想像できます。

通常はWindows等のOSでの動作の事を指していると思いますが、プログラミングの観点でもマルチスレッドというポイントで対応する事が可能なようです。

何故、プログラミング側でマルチスレッドの対応が必要かというと、対応していないプログラムでは、複数のプロセスで分割計算などした場合の結果の纏めが簡単にはできない為だと思います。

例えば、四則演算の場合を考えてみましょう。

(1+2+3+4)/(5+6+7+8)=?

この様な演算の場合、マルチプロセスでは無い場合は、(1+2+3+4)の計算を先ず行い、(5+6+7+8)の計算を行って、最後に最初の演算結果を二度目の演算結果で割り算を行うと思います。

マルチスレッドであれば、(1+2+3+4)を一つのプロセスで実行し、(5+6+7+8)を別なプロセスで実行して、各々の結果を三つ目のプロセスで割り算を実行すれば、最短で且つ最適化されたCPU使用率で演算が可能となると思います。

また、その場合、複数のプロセスで各々の演算結果をシェアする必要があります。通常は共通メモリの様な発想になると思いますが、こういった事を考えると、単純にプログラミングをマルチスレッドに対応するだけでは旨く動作しない様に思えます。

こういった事の対応を考えると、マルチスレッドだけでなく、マルチCPUの対応もプログラミングで可能な部分がある気がしてくるのは講師だけでしょうか?

皆さんは、プログラミングについて、どの様なご意見・イメージをお持ちでしょうか?

講師の経験が、皆様のお役に立てれば幸いです。

この記事が気に入ったらサポートをしてみませんか?