« 人工知能症候群 | Main | メモ:イジメ »

January 22, 2017

Emacs Threads 20170122

先月からちょこちょこ作っているTASKクラスであるが、最底邊の部分がある程度出來た氣がする。ちょっと前までcondvar(條件變數)の部分が動かなくて、スタブみたいな感じになっていたが、Emacsが改修されて動くようになったので、本來の處理に變えてみた。

Ws000103


TASKクラスというのはEmacsThreads機能をラッピングする。スレッドを起動するとそれに關するリソースを變數に設定しておかなければならないが、何も考えずにやるとどんどんグローバル變數がトッ散らかっていくので、そうならないようにクラス定義して管理しようとする試み。自分の都合で作っているだけなので、一般的でも、抽象的でも、普遍的でも、效率的でもない。

Ws000104


Ws000105


こんな感じのテストプログラムで自分のイメージ通りに動くことを確認したが、まだこれが何の役に立つのか自分でも分かっていない。この先、このライブラリを使って何かプログラムを書いていけば、どんどん變わっていく可能性が高い。既にcondvarの部分はまだ動作確認しているだけの狀態である。また、mutexcondvarをスレッド每に作る必要があるのか?という、かなり根本的な疑問もある。ただ、スレッドに付けた名前でアクセス出來るという手輕さくらいはある。

スレッドプログラミングはむずかしいという人が多いが、それは不必要性に比例してむずかしくなっていくと思われる。ここはスレッドを起動して多重化した方が良いと漠然と思える部分に使用するのが賢いやり方で、必要もないのに見榮でスレッドを使うような場合にはなかなか思い通りにはならないだろう。當たり前の話だが、必要性を感じないということはイメージしにくいということであり、どう動くかイメージ出來なければ正常動作を確認しようがないからだ。

ソースを見たいという奇特な人は以下のURLからどうぞ(笑)
https://github.com/nobulin

|

« 人工知能症候群 | Main | メモ:イジメ »

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/74224/64794909

Listed below are links to weblogs that reference Emacs Threads 20170122:

« 人工知能症候群 | Main | メモ:イジメ »