BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ Concurrency に関するすべてのコンテンツ

  • Rich Hicky氏、Clojureの特徴と実装について語る

    QCon London 2009 でのこのインタビューの中で、Rich Hickey氏はClojureについて語っている。議論の中でClojureのSTMサポートの背後にある考えや、Clojureが他にどんな並行性プリミティブをサポートしているか、将来どんなプリミティブが追加されそうか、などが語られている。他にも、ClojureのAOTサポートや、マルチメソッドの役割とその実装について、Clojureの他のシステムへの移植について、など満載である。

  • データフローでのRuby向け宣言型並列性

    Ruby言語の一部が、関数型プログラミング技法によって影響を受けた。Rubyプログラマは、その後ErlangまたはHaskellから技法を導入したり、これらの言語へのブリッジ(Erlectricityなど)を作成した。

  • 並列プログラミングは難しい?Guy Blelloch 教授はそうではないと主張

    Cilk Arts での評論において Guy Blelloch 教授は並列プログラミングは本来難しいものではなく、むしろ抽象化に関する問題であると主張している。Blelloch 氏が特定する3つの問題点は、並列的思考の訓練の欠如、並列的な実装のアルゴリズムからの分離、そして決定論である。それぞれの問題についての詳述の後、彼はなぜそれらが克服可能であると考えるのかを説明している。

  • SunのGarbage-First Garbage Collectorが低レイテンシと高スループットのトレードオフを大幅に解消

    SunのGarbage-First garbage collectorはレイテンシが小さな、新しいガベージ・コレクタで、HotSpot JVMにおいてCMSの後継となるよう計画されたものである。これはサーバ・スタイルのコレクタで、大型メモリを備えたマルチ・プロセッサのコンピュータをターゲットとしている。CMSとG1には、2つの大きな違いがある。

  • 関数型プログラミングとCoordination Data Structures

    Coordination Data Structures (CDS) は.NET 4で計画されている新しいAPIであり、スレッドセーフなオブジェクトや主にコレクションを扱うものだ。そのCDSに、およそ6ヶ月の沈黙を経ていくつかの大きな更新があった。もっとも注目に値するのは関数型プログラミングの手法が導入されたことだ。これによってデザインパターンを使う必要性が軽減される。

  • C# 4.0によるデッドロックの問題の「解決」

    同じソースコードの最適化されたビルドと最適化されていないビルドは、それぞれ異なるデッドロックになる可能性があることを、数年前Eric Lippert氏は述べた。

  • Concurrent Basic – メッセージベースの並行性の宣言型言語

    Concurrent Basicは、見込まれるVisual Basicの将来を表す。Polyphonic C#およびC-OmegaなどのC#研究言語で実行される作業に基づいているけれども、Visual Basicは宣言型プログラミングの本来備わっている傾向のため、白羽の矢が立った。その構文は、VBの宣言型イベントハンドラによって着想される。

  • より優れたスレッドセーフなコレクションの構築

    スレッドセーフなコレクションには大抵いくつかの根本的な問題がある。個々の操作がスレッドセーフである一方、大抵の場合それらの操作は結合可能ではない。スタックの先頭にある要素をポップする前に要素数を調べる、といったような一般的な操作は本質的には危険である。例えば .NET 4 の Coordination Data Structuresなどのように振る舞いの結合を図る API は存在するものの、それは TryDequeue のような不格好なメソッドにつながる。

  • JRubyとClojureは好相性?

    ClojureはJVM向けのLISP風言語である。Clojureで重視している点の1つに並行処理があり、Clojureでは不変のデータ構造で並行処理をサポートしている。Daniel Kwiecinski氏がブログの中で、JRubyとClojureを組み合わせるアイデアを探究し、Clojureのデータ構造と機能をRubyオブジェクトとしてJRubyで利用可能にする実験を行っている。

  • ClojureがSTMとLISPをJVMにもたらす

    ClojureはLISPファミリの言語のかなり新しいメンバであり、Javaプラットフォームで動作する。2007年に導入され、すで高い関心を集めている。ひとつの理由はClojureの並行処理へのアプローチであり、ソフトウェアトランザクショナルメモリ(STM)のコンセプトを踏まえている。

  • ThreadPoolがTask、ContinuationおよびFutureに取って代わる

    .NET 4.0で、スレッドプールの新バージョンが利用可能になる。パフォーマンスおよびロードバランシングの拡張機能に加えて、この新たなスレッドプールはTaskの使用を可能にする。

  • Article: RubyのFiberを非同期I/Oに使うNeverBlockとRevactor

    Fiberはユーザに試練を課すことなくこの考えを実装する有益な並行性ツールとして、ライブラリが2つあります。まさにこのためのソリューションとしてあるのがNeverBlockライブラリです。私たちはNeverBlockプロジェクトのMohammad A. Ali氏とRevactorライブラリのTony Arcier氏に話を聞きました。

  • Erlang VM上で増え続ける言語

    Erlang VMのBEAMがホストする言語が増加している。Python/Rubyに似たスクリプティング言語のReiaとLisp Flavoured Erlangが先ごろリリースされた。Debasish Ghosh氏はこの傾向について思案しているが、他の制作者らはRubyやHaskellからヒントを得て、その他可能な変形言語を概説しようとしている。

  • Article: Java 6のスレッド最適化は実際に動作しているのか? - パートII

    パート2では、ベンチマークの結果を検証するために用いられるテクニックについてさらに深く見ていきたいと思います。最後に、「なぜプロセッサが異なるとロックのコストも大きく異なるのか」と言う真の疑問に答えます。

  • Fibersの総まとめ:NeverBlockがRailsコンパチブル、「Poor Man's」 Fibers For 1.8

    NeverBlockはライブラリの新バージョンをリリースした。今回はRailsとRuby 1.8のサポートがある。1.8のサポートにはThreadsを使用しFibersを実装する「Poor Man's」Fiberコードが含まれる。

BT