InfoQ ホームページ Concurrency に関するすべてのコンテンツ
-
Article: JavaScriptによるマルチスレッドの実現‐Concurrent.Threadの裏側
昨年12月3日の記事で,JavaScriptでマルチスレッドを利用可能にするライブラリ、Concurrent.Threadを紹介しました。今回はConcurrent.Threadの内部で何が起こっているのかについて、ご紹介しましょう。
-
RubyのMVM APIの共同研究が始まる
RubyでマルチコアCPUマシンを利用することは、これまで、問題のあるテーマであった。Ruby 1.8までは、Rubyのインタプリタはユーザスペース・スレッディングを使用していた。つまり、スレッドはRubyのインタプリタによってスケジュールされているということである。
-
Article: Rubyの並行性、アクター、およびRubinius - MenTaLguY氏へのインタビュー
Ruby 1.9でのファイバー (コルーチン) の追加、および最近のErlangおよびアクターの人気など、あまり知られていない概念がRubyプログラミングの世界に入ってきている。並行性を考えたときにRubyの世界で何が使用可能であるかを大まかに理解するため、長年RubyコミュニティのメンバーであるMenTaLguY氏に話を伺った。
-
RubiniusがマルチVMサポートを追加
RubiniusがOSプロセス内で複数のRuby VMを動作させるのを可能にする"Multi-VM"という新たな機能を追加した。私達はこの機能の利点と実装を探るためRubiniusプロジェクトのEvan Phoenix氏に尋ねた。
-
並行処理フレームワークのJPPF、負荷分散とフェイルオーバー、J2EEインテグレーションを提供
Java Parallel Processing Framework (JPPF、Java並行処理フレームワーク)のプロジェクトチームは先日、JPPF 1.0 のリリース候補初版を発表した。JPPFはオープンソースのグリッド・コンピューティング・フレームワークであり、これを使用して様々な Javaアプリケーションを分散実行環境で並行して動かすことができる。
-
Article: JavaScriptへのマルチスレッド・プログラミングの導入
Ajax開発のむずかしさ、その原因の一つに、JavaScriptではスレッドは1つしかないということが挙げられます。1つしかないスレッドの上で非同期通信をしようとするといろいろ困難さが発生します。ここでは解決方法を一つご紹介します。
-
スレッドを用いた作業ユニットの混乱
ほとんどのサーバ側のアプリケーションとデスクトップアプリケーションは進行中である特定のタスクに結びついているデータを含んでいる。一般的なソリューションはそれらのデータをThreadLocalストレージに保存することだ。つまり、進行中のスレッドに結びついた変数内のデータに保存するということだ。これは便利な方法なのだが、誤った仮説に基づいている。
-
並列処理に対応したプログラミング – 並列階層のパターン
マルチコアプロセッサの登場によって、新しいパフォーマンスのチャンスが生まれる。しかし、Ina Fried氏によると、「現在のソフトウェアの大半はそのような進歩に対応できるようになっていない」ため、このハードウェアの動向はソフトウェア業界にとって大きな課題であるとのことである。このような状況下で、メキシコ国立自治大学数学部の Jorge L. Ortega-Arjona教授によって、並列プログラミングに対応した新しい設計パターンが導入された。このパターンは、以下の場合に実行パフォーマンスの向上を試みるものである。
-
Erlangは並列処理時代の新たなJavaとなるのか?
コンピューティングの未来は並列処理の時代となるだろう。今日デスクトップCPUでさえもマルチコアであり、またユーザー達はサーバ用のCPUを次々と購入している時代であり、また彼らの新たな財産を最大限に利用するためにアプリケーションが効率よくスケールアウトすることが期待されているのだ。しかしそれは現在のソフトウェアシステムでは実現しないのだ。