趣旨

スレッドプログラミングの世界にふみこむべく、概要を学ぶためにメモするという趣旨。

だれでも、この記事を修正することが可能なブログ風なサイトですので、手直しして皆で良い情報を共有しましょう。

目次

スレッドについての考察

軽量スレッドについての考察

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/

スレッド方式は理解不能で捨てるべき Byバークレー校 教授

スレッドの情報を集めていたら、スレッドのデメリットを見つけていたら

カリフォルニア大学バークレー校で電子工学と情報科学を教えるエドワード・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

ペトリネット

プロセス代数

π計算

並行論理プログラミング

並行制約プログラミング

POSIXのスレッドについて(英語)

http://en.wikipedia.org/wiki/POSIX_Threads

メッセージについて

Erlang

Erlang(アーラン)

アクターモデルとは、スレッドよりも軽量で、高速に生成・破棄・メッセージ送信ができるアクターという概念を利用して、並行処理を実現するモデルのようです。

OpenMP

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/

twitterでのErlangの実績について語られている記事

http://www.atmarkit.co.jp/news/200704/27/erlang.html

Erlangのビルドツール

rebar

説明

http://www.eisbahn.jp/yoichiro/2012/02/erlang_rebar.html

Erlang Wiki

http://ja.wikipedia.org/wiki/Erlang#cite_note-0

日本語の解説サイト

各種OSへのインストールが記載されている

http://erlangworld.web.fc2.com

ErlangでUUIDの生成

http://www.eisbahn.jp/yoichiro/2012/02/erlang_uuid.html

URL

公式サイト

http://www.erlang.org

本家

http://www.erlang.org/

日本の勉強会

http://erlang-users.jp

Pthread

C言語のスレッドライブラリで、ApatcheやMySQLのコア部分に使われている。

参考になりそうなサイト

Wiki

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

サンタクロース問題

scalaで解く

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で解く

http://d.hatena.ne.jp/rubyco/20070611/santa

http://www.cs.otago.ac.nz/staffpriv/ok/santa/index.htm

Squeak Smalltalkで解く

http://d.hatena.ne.jp/sumim/20070607/p1

Smalltalk

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で解く

http://www.cs.otago.ac.nz/staffpriv/ok/santa/index.htm

CCR

CCRとはMicrosoft Robotics Developer Studioに含まれるCCR(Concurrency and Coordination Runtime)という技術で、CCRは、Erlangというプログラミング言語のアクターモデルというものを参考にしているようです。

http://d.hatena.ne.jp/ZOETROPE/20090117/

Javaで解く

http://d.hatena.ne.jp/hyuki/20070608/santa

http://d.hatena.ne.jp/lethevert/20070611/p1

STM(Software Transaction Memory)で解く

http://d.hatena.ne.jp/kazu-yamamoto/20100409/1270780256

Pythonで説いたわけではないけど、それっぽい技術

http://d.hatena.ne.jp/ytakano/20100731/1280565945

参考URL

様々な言語による回答

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??)

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#)

http://research.microsoft.com/~nick/santa.pdf (cf.

http://d.hatena.ne.jp/syd_syd/20070609)

Xtal

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

Boost.Coroutine

関数の実行を途中で凍結・再実行させる機構

別名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/

Boost.Fiber

C++相談室でなにかと取り上げられているもよう。

Fiberは軽量なスレッドの概念です。

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

Rubyでのスレッド

なにやらRevactor, Celluloid, Rubinius Actorsとうものについての記述がスレッドに関係がありそうであったので、リンクをメモする

http://d.hatena.ne.jp/kura-replace/20120305/1330941302

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-04-11 (水) 01:44:19 (3477d)