- 追加された行はこの色です。
- 削除された行はこの色です。
*趣旨 [#z336617d]
スレッドプログラミングの世界にふみこむべく、概要を学ぶためにメモするという趣旨。
だれでも、この記事を修正することが可能です。
*目次 [#y283daef]
#contents
*スレッド方式は理解不能で捨てるべき [#l1b0b6d6]
スレッドの情報を集めていたら、スレッドのデメリットを見つけていたら
カリフォルニア大学バークレー校で電子工学と情報科学を教えるエドワード・A・リー教授は、「The Problem with Threads」の中で、マルチスレッドは、これまでわれわれが慣れ親しんだプログラミングモデルであるシーケンシャル処理にあった理解可能性(understandability)、予測可能性(predictability)と、決定論(determinism)を損なうとし、並列処理のプログラミングモデルとしてのスレッドは捨てるべきだとまで言い切っている。「自明でないマルチスレッドプログラミングというものは、人間には理解不能」だからだ。
**情報源 [#p2f01990]
http://www.atmarkit.co.jp/news/200704/27/erlang.html
*並列処理について [#k20f05b2]
http://hamamuratakuo.blog61.fc2.com/blog-category-14.html
*Erlang [#j7d450a9]
Erlang(アーラン)
アクターモデルとは、スレッドよりも軽量で、高速に生成・破棄・メッセージ送信ができるアクターという概念を利用して、並行処理を実現するモデルのようです。
**スレッドプログラミングのデメリットを論じている [#g9e166c6]
http://www.atmarkit.co.jp/news/200704/27/erlang.html
**参考 [#i13009a7]
http://d.hatena.ne.jp/ZOETROPE/20090117/
**Erlangのビルドツール [#s737ba8c]
rebar
***説明 [#i310aae4]
http://www.eisbahn.jp/yoichiro/2012/02/erlang_rebar.html
**Erlang Wiki[#f849c318]
http://ja.wikipedia.org/wiki/Erlang#cite_note-0
**日本語の解説サイト [#j1e0bc98]
各種OSへのインストールが記載されている
http://erlangworld.web.fc2.com
**ErlangでUUIDの生成 [#jd5555c4]
http://www.eisbahn.jp/yoichiro/2012/02/erlang_uuid.html
**URL [#md714250]
***公式サイト [#xed5bfa2]
http://www.erlang.org
***本家 [#q63fe99f]
http://www.erlang.org/
**日本の勉強会 [#pb0cc3c4]
http://erlang-users.jp
** [#q4a5ba03]
*Pthread [#i7a22a7f]
C言語のスレッドライブラリで、ApatchやMySQLのコア部分に使われている。
**参考になりそうなサイト [#tf36070a]
***Wiki [#s49e7ae0]
http://ja.wikipedia.org/wiki/POSIXスレッド
***まとめ記事 [#e853bfd8]
C言語の基本的なテーマごとに記事がまとめられています。Pthreadがスレッドの記事のリンクです。
http://www.fireproject.jp/feature/c-language/index.html
***スレッドについての記事 [#t85b9850]
http://blog.majide.com/2009/03/thread-sample-program/
***チュートリアル(英語の資料) [#m3ee62d5]
https://computing.llnl.gov/tutorials/pthreads/
http://www.yolinux.com/TUTORIALS/LinuxTutorialPosixThreads.html
***チュートリアル的プレゼンテーション(英語の資料) [#eb28e8b3]
http://conferences.oreillynet.com/presentations/os2007/os_lamothe.pdf
*サンタクロース問題 [#o2432f25]
**scalaで解く [#oc0cd4ee]
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
**rubyで解く [#tffae10d]
http://d.hatena.ne.jp/rubyco/20070611/santa
http://www.cs.otago.ac.nz/staffpriv/ok/santa/index.htm
**Squeak Smalltalkで解く [#p4b49929]
http://d.hatena.ne.jp/sumim/20070607/p1
**Smalltalk [#a8f34e6f]
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
**erlangで解く [#g3f70fc6]
http://www.cs.otago.ac.nz/staffpriv/ok/santa/index.htm
**CCR [#ied0dad7]
CCRとはMicrosoft Robotics Developer Studioに含まれるCCR(Concurrency and Coordination Runtime)という技術で、CCRは、Erlangというプログラミング言語のアクターモデルというものを参考にしているようです。
http://d.hatena.ne.jp/ZOETROPE/20090117/
***Javaで解く [#g30933c9]
http://d.hatena.ne.jp/hyuki/20070608/santa
http://d.hatena.ne.jp/lethevert/20070611/p1
***STM(Software Transaction Memory)で解く [#j5e86cbd]
http://d.hatena.ne.jp/kazu-yamamoto/20100409/1270780256
*参考URL [#z4fe77fc]
様々な言語による回答
http://hyuki.com/yukiwiki/wiki.cgi?%a5%b5%a5%f3%a5%bf%a5%af%a5%ed%a1%bc%a5%b9%cc%e4%c2%ea
**OCaml (JoCaml?) [#r56b2770]
http://jijixi.azito.com/cgi-bin/diary/index.rb?date=20070608#p01
http://tsukimi.agusa.i.is.nagoya-u.ac.jp/~sydney/ocaml/index.php?%A5%B5%A5%F3%A5%BF%A5%AF%A5%ED%A1%BC%A5%B9%CC%E4%C2%EA
**C# (Polyphonic C#) [#ee76e880]
http://research.microsoft.com/~nick/santa.pdf (cf.
http://d.hatena.ne.jp/syd_syd/20070609)
*Xtal [#z0a7c709]
http://code.google.com/p/xtal-language/
マイクロスレッド
**日本語のドキュメント [#q622b5d6]
http://d.hatena.ne.jp/kasugano/20120302/1330686151
*コルーチンはマイクロスレッドでありファイバーである [#i5e28b44]
http://blogs.wankuma.com/myugaru/archive/2008/03/10/127059.aspx
**Boost.Coroutine [#n52a11c9]
関数の実行を途中で凍結・再実行させる機構
別名micro-thread,fiber,continuation
***参考記事 [#g23848ff]
プレゼン風解説
http://www.slideshare.net/melpon/boostcoroutine-10127544
http://hamigaki.sourceforge.jp/doc/html/coroutine.html
http://yz.mit.edu/wp/boost-coroutine/
**Boost.Fiber [#y3c2a677]
C++相談室でなにかと取り上げられているもよう。
**Fiberは軽量なスレッドの概念です。 [#wf024b74]
http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%90%E3%83%BC_(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF)
http://dixq.net/forum/viewtopic.php?f=3&t=9322