TPL入門 - インデックス posted by xin9le on TPL No comments .NET Framework 4.0で搭載されたタスク並列ライブラリ (TPL : Task Parallel Library) について、MSDNの記事に沿いながら、噛み砕いて書いていければと思います。 はじめに データの並列化 単純なループ 挙動の観察 ループの中断/停止 スレッドローカル変数 例外処理 ループの取り消し Leave a Reply
TPL入門 - インデックス posted by xin9le on TPL No comments .NET Framework 4.0で搭載されたタスク並列ライブラリ (TPL : Task Parallel Library) について、MSDNの記事に沿いながら、噛み砕いて書いていければと思います。 はじめに データの並列化 単純なループ 挙動の観察 ループの中断/停止 スレッドローカル変数 例外処理 ループの取り消し Leave a Reply
本日社内向けのTechTalkにて、並列・並行プログラミングに関する話を行いました。 昨今、プログラムの並列化はなくてはならないものとなっています。しかし、そのプログラミング環境は依然としてロックを用いたものが主流です。今回の発表の主張を端的に申し上げますと、 “Locks must go!” ということになります。並列プログラミングに銀の弾丸はありません。しかし、ロックは別の何らかの安全性を確保したプログラミングモデルで置き換えられなければいけません。そうでなければ、再現しにくいバグに苦しめられ、終電を逃す日々と決別することはできないでしょう。また、ロックによるプログラミングの抱える本質的問題にも言及しています。 この界隈の最新の動向として、去年OOPSLA’10にて発表されたConcurrent Revisionsについての解説も行なっております。また、弊社研究開発において、先日Con
P# is a compiler which facilitates interoperation between a concurrent superset of the Prolog programming language and C#. This enables Prolog to be used as a native implementation language for Microsoft's .NET platform. P# compiles a linear logic extension of Prolog to C# source code. P# can create C# objects from Prolog and use C#'s graphical, networking and other libraries. P# adds language con
今回は、Barrierクラスについて。 Barrierクラスは、.NET 4.0からSystem.Threading名前空間に追加されたクラスです。 Barrierクラスは、並行処理を複数のフェーズ毎に協調動作させる場合に利用します。 つまり、N個のスレッドを特定のフェーズ毎に足踏みを揃えて、次のフェーズに進むようにします。 Barrierでは、複数のスレッドが前進するためにバリアのところに全員が揃わないといけません。 一見、CountdownEventと同じように見えますが、以下の違いがあります。 CountdownEventは、特定のイベントが終わったという事を待つために利用するが、Barrierは仲間のスレッドを待つために利用する。 CountdownEventは、Signalを呼ぶことでカウンタをデクリメントします。 CountdownEvent.Waitを呼んでいるスレッドは、そ
以前FITEA定期勉強会で、並行と並列の違いについて議論になりました。 具体的な議論のポイントは 「並行」は時分割でスレッドを処理、「並列」はマルチコアで処理 「並行」は概念的に違うものを同時に処理、「並列」は同じ処理を分割して処理 というポイントで、簡単に検索してみたところ、両主張ともに見受けられ、その場では深く追求しませんでした。(別議論のなかのサブトピックであったので、時間的な都合もあり) 今回たまたま、以下の本を読んでみて色々考えたので、それを記載してみます。 【送料無料】並行コンピューティング技法 価格:3,360円(税込、送料別) コンピュータサイエンス的な「並行」と「並列」 「並行コンピューティング技法」の1.1.2「並行と並列:その違いは?」に以下のようにあった。 システムが複数の動作(処理の流れ)を同時に実行状態(in progress)に保てる機能を備えている場合を 並
スレッドセーフにするために考えること 〜応用編 その1〜 - じゅんいち☆かとうの技術日誌 では、エンティティのインスタンスを共有せずに、スレッドの振る舞いを関数型のようにするとよいという話をしました。そして、アトミックを必要とするトランザクション操作は、リポジトリの責務にしました。 エンティティのインスタンスを共有しない場合はよいが、どうしても共有しなければならない場合はどうしたらよか という点はまだ解決できていません。それをこのエントリで考えていきましょう。 スレッドセーフに対するエンティティとバリューオブジェクトの違い まず、エンティティとバリューオブジェクトで共有した時の影響が異なる点について説明しておきます。 前エントリでも説明したようにEmployeeなどのエンティティは、同一インスタンスで状態を変更できる可変オブジェクトです。スレッドセーフにするときに工夫が必要なのは可変オブ
スレッドセーフにするために考えること 〜基礎編〜 - じゅんいち☆かとうの技術日誌 基礎編では、スレッドセーフについての基本的な考え方を書きました。 スレッドセーフにするには、アトミック性を保証することが必要でした。この応用編では、その点を注意しながら、実際にドメイン層の振る舞いを持つドメインモデルでどのようなことを気をつければスレッドセーフになるか考えてみたいと思います。考えながら、書いてるのでちょっとおかしいところがあるかも。ご容赦をw モデルオブジェクトを複数のスレッドで共有して操作してみる とりあえず、典型的なサンプルとして従業員と部署。。もうやだ〜このサンプル〜。とか言わないのw 以下の従業員は名前と役職、所属部署(複数可)を保持します。スレッドとか気にせずとりあえず適当にモデリング。toStringはデバッグ用にcommons-langのToStringBuilderを使います
ええっと、リクエストされたので、今回は並行処理ネタにいってみます。 並行処理といえば、この本は必読書ですね。でも、書いてることは、かなりムズカシイデス(´・ω・`) Java並行処理プログラミング ―その「基盤」と「最新API」を究める― 作者: Brian Goetz,Joshua Bloch,Doug Lea出版社/メーカー: ソフトバンククリエイティブ発売日: 2006/11/22メディア: 単行本購入: 24人 クリック: 419回この商品を含むブログ (163件) を見る ということで、並行処理について、もうちょっと優しく分かりやすく解説できないか考えて書いてみます。 スレッドセーフにするには 今回は、プログラムをスレッドセーフにするためにどんなことを考えればよいか。そういうテーマです。 アンスレッドセーフなコードから この本の最初の方に、"スレッドのリスク"という章で、スレッド
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く