スレッドプログラミングの世界にふみこむべく、概要を学ぶためにメモするという趣旨。
だれでも、この記事を修正することが可能なブログ風なサイトですので、手直しして皆で良い情報を共有しましょう。
軽量スレッドについての考察
http://subtech.g.hatena.ne.jp/mala/20090920/1253447692
http://d.hatena.ne.jp/nishiohirokazu/20110512/1305207754
http://ufcpp.wordpress.com/category/c/page/2/
スレッドの情報を集めていたら、スレッドのデメリットを見つけていたら
カリフォルニア大学バークレー校で電子工学と情報科学を教えるエドワード・A・リー教授は、「The Problem with Threads」の中で、マルチスレッドは、これまでわれわれが慣れ親しんだプログラミングモデルであるシーケンシャル処理にあった理解可能性(understandability)、予測可能性(predictability)と、決定論(determinism)を損なうとし、並列処理のプログラミングモデルとしてのスレッドは捨てるべきだとまで言い切っている。「自明でないマルチスレッドプログラミングというものは、人間には理解不能」だからだ。
http://www.atmarkit.co.jp/news/200704/27/erlang.html
http://hamamuratakuo.blog61.fc2.com/blog-category-14.html
http://ja.wikipedia.org/wiki/並行計算
アクターモデルの基本は「全てのものはアクターである」という哲学である。これはオブジェクト指向プログラミングにおける「全てのものはオブジェクトである」という考え方と似ているが、オブジェクト指向ソフトウェアでは基本的に逐次的に実行するのに対して、アクターモデルでは本質的に並行性を備えている点が異なる。 アクターは並行的に受信するメッセージに対応した以下のような振る舞いを備えた計算実体(Computational Entity)である: (他の)アクターに有限個のメッセージを送信する。 有限個の新たなアクターを生成する。 次に受信するメッセージに対する動作を指定する。 これらの振る舞いには逐次性は前提とされておらず、並列的にこれらを実行する。
情報源
http://ja.wikipedia.org/wiki/%E3%82%A2%E3%82%AF%E3%82%BF%E3%83%BC%E3%83%A2%E3%83%87%E3%83%AB
http://en.wikipedia.org/wiki/POSIX_Threads
Erlang(アーラン)
アクターモデルとは、スレッドよりも軽量で、高速に生成・破棄・メッセージ送信ができるアクターという概念を利用して、並行処理を実現するモデルのようです。
OpenMPはOpenMPが使用できない環境では無視されるディレクティブを挿入することによって並列化を行う。このため並列環境と非並列環境でほぼ同一のソースコードを使用できるという利点がある。
http://ja.wikipedia.org/wiki/OpenMP
http://www.atmarkit.co.jp/news/200704/27/erlang.html
http://d.hatena.ne.jp/ZOETROPE/20090117/
http://www.atmarkit.co.jp/news/200704/27/erlang.html
rebar
http://www.eisbahn.jp/yoichiro/2012/02/erlang_rebar.html
http://ja.wikipedia.org/wiki/Erlang#cite_note-0
各種OSへのインストールが記載されている
http://erlangworld.web.fc2.com
http://www.eisbahn.jp/yoichiro/2012/02/erlang_uuid.html
C言語のスレッドライブラリで、ApatcheやMySQLのコア部分に使われている。
http://ja.wikipedia.org/wiki/POSIXスレッド
C言語の基本的なテーマごとに記事がまとめられています。Pthreadがスレッドの記事のリンクです。
http://www.fireproject.jp/feature/c-language/index.html
http://blog.majide.com/2009/03/thread-sample-program/
https://computing.llnl.gov/tutorials/pthreads/
http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html
http://conferences.oreillynet.com/presentations/os2007/os_lamothe.pdf
http://d.hatena.ne.jp/shomah4a/20101225/1293289667
http://d.hatena.ne.jp/yojik/20070613/1181752623
http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20070622
http://yasutech.blogspot.com/2011/12/fantom.html
http://d.hatena.ne.jp/rubyco/20070611/santa
http://www.cs.otago.ac.nz/staffpriv/ok/santa/index.htm
http://d.hatena.ne.jp/sumim/20070607/p1
http://d.hatena.ne.jp/sumim/20070607/p1
http://d.hatena.ne.jp/sumim/20070608/p1
http://d.hatena.ne.jp/sumim/20070612/p1
http://d.hatena.ne.jp/sumim/20070613/p1
http://d.hatena.ne.jp/sumim/20070613/p2
http://www.cs.otago.ac.nz/staffpriv/ok/santa/index.htm
CCRとはMicrosoft Robotics Developer Studioに含まれるCCR(Concurrency and Coordination Runtime)という技術で、CCRは、Erlangというプログラミング言語のアクターモデルというものを参考にしているようです。
http://d.hatena.ne.jp/ZOETROPE/20090117/
http://d.hatena.ne.jp/hyuki/20070608/santa
http://d.hatena.ne.jp/lethevert/20070611/p1
http://d.hatena.ne.jp/kazu-yamamoto/20100409/1270780256
http://d.hatena.ne.jp/ytakano/20100731/1280565945
http://hyuki.com/yukiwiki/wiki.cgi?%a5%b5%a5%f3%a5%bf%a5%af%a5%ed%a1%bc%a5%b9%cc%e4%c2%ea
http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20070608#p01
http://research.microsoft.com/~nick/santa.pdf (cf.
http://d.hatena.ne.jp/syd_syd/20070609)
http://code.google.com/p/xtal-language/
マイクロスレッド
http://d.hatena.ne.jp/kasugano/20120302/1330686151
http://blogs.wankuma.com/myugaru/archive/2008/03/10/127059.aspx
関数の実行を途中で凍結・再実行させる機構
別名micro-thread,fiber,continuation
プレゼン風解説
http://www.slideshare.net/melpon/boostcoroutine-10127544
http://hamigaki.sourceforge.jp/doc/html/coroutine.html
http://yz.mit.edu/wp/boost-coroutine/
C++相談室でなにかと取り上げられているもよう。
http://dixq.net/forum/viewtopic.php?f=3&t=9322
なにやらRevactor, Celluloid, Rubinius Actorsとうものについての記述がスレッドに関係がありそうであったので、リンクをメモする