« Emacs Threads 20161223 | Main | Emacs Threads 20161225-2 »

December 25, 2016

Emacs Threads 20161225

「あんたクリスマスなのに何やってんの?」とかいうツッコミは來ないと思うので、氣にせずEmacsThreads遊び(笑)

Ws000080


ちょっと前に、thread-nameを使ってスレッドに强引に引數を渡しフォームを實行する、with-threadというマクロを冗談で檢討していたんだけど、スレッドの起動引數はグローバルで良いんじゃない?というご尤もなご指摘をいただいた。しかし、スレッドをいくつも使う場合にそれらへ渡す引數をどんどんグローバル變數にしていくとトッ散らかって收拾がつかなくなるのは目に見えているので、クラス化してみようというのが今囘の試み。全然整理されていないように見えるのは、まだ完成形でないからであるが、いつものように完成させようなんて思っちゃいない。

create-taskという關數でmy-threadをスレッドとして生成し、start-taskでスレッドの處理を開始させ、スレッドの終了を見屆けるという、最も初步的なハンドリングが出來ることを確認した。その樣子をdebug-bufferに表示している。おそらく、現在のEmacs Threadsの仕樣ではスレッドを適切にハンドリングすれば、安全に實行することが可能になるが、突き詰めるとそれってスレッド使わなくてもイイんじゃね?ってことになりかねない。つまり、作成過程で動かしながらスレッドの實行を交通整理していくと、どんどんconcurrencyが薄くなっていくという皮肉に陷るのだ(笑)

このことはちょっと前に書いた「マルチスレッド貧乏性」でも觸れている。どんな頭の良い人でも複數のことを竝行で考えることが出來ないので、コンピュータ上でいくつものスレッドが任意に竝行で動いている狀態をイメージすることが出來ない。それをイメージしなければならないのであれば、いくつスレッドがあったとしても、そのうちのどれか1個だけ(または同樣の閉じた處理が複數)動いている狀態を作り出すことにならざるを得ないのだ。

まあでも、全く有效性がないというわけでもない。makeコマンドだって-jオプションで複數のコンパイルを竝行で行なうわけで、スクリプト處理においてもそれに類する、たとえば100個のファイルに對して全く同じことをするという場合に、それをわざわざ順番に1個ずつ處理しなければならないわけではなく、竝行で行なっても良いのであろう。それ以外に、人がイメージ出來る竝行處理ってあるのかどうか、私には分からない。

|

« Emacs Threads 20161223 | Main | Emacs Threads 20161225-2 »

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/64673516

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

« Emacs Threads 20161223 | Main | Emacs Threads 20161225-2 »