« Emacs Threads 20161225 | Main | Emacs Threads 20161229 »

December 25, 2016

Emacs Threads 20161225-2

前の記事で書いたように、たくさんのファイルに對して同樣の處理をする場合に、それをスレッドにしたらどうかと考えるのは當然である。たまたまちょっと前に作った自作版のfind-grepがあったのでそれをマルチスレッド化してみた。前の記事に載せたtaskライブラリも多少變更している。

Ws000083

Ws000084


處理の流れとしては、まず再歸しないfindloop版を呼び出してファイルのリストを作成し、そのファイル11個にスレッドを起動してgrepする。すべてのファイルの處理が終わったら、それぞれの結果を1個のバッファに收集する。論理CPU3の假想マシンなので、grep處理の多重化も3にしている。さほど惱む點はなかったが、一應動いた後でファイル每に作るバッファが殘ってしまうのを修正した。

これまで、スレッドを起動してsit-forしたり、メッセージを出したりするだけのサンプルだったが、やっとマルチスレッドっぽい處理を書いて、それが動くことも確認できたので少しホッとした(笑)

|

« Emacs Threads 20161225 | Main | Emacs Threads 20161229 »

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

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

« Emacs Threads 20161225 | Main | Emacs Threads 20161229 »