本文へジャンプ


developerWorks Japan  >  Java technology  >  

技術文書一覧

developerWorks
 
  
 
 タイトル  35    概要の非表示    
 
タイトル 日付日付 別のソート - 逆順にしたい場合はクリック
リアルタイム Java での開発: 第 1 回 リアルタイム Java ならではの独特な機能を探る
リアルタイム Java は、Java 言語でのプログラミングの容易さと、リアルタイム要件を満たさなければならないアプリケーションに必要なパフォーマンスとを組み合わせた、Java 言語の拡張機能一式です。これらの拡張機能は、従来の Java ランタイム環境には欠けていた、リアルタイム環境のための機能を提供します。3 回連載の第 1 回目となるこの記事では、これらの拡張機能をいくつか取り上げて説明し、さらに独自のアプリケーションに適用してリアルタイム・パフォーマンスを実現する方法を説明します。
    2009/09/01  
 
トランザクション・ストラテジー: 高並行性トランザクション・ストラテジー
連載「トランザクション・ストラテジー」では今回、スループットが高く、ユーザーの観点で並行性が高いという 2 つの要件を持つアプリケーションに、Java プラットフォームにおけるトランザクション・ストラテジーを実装する方法を、著者の Mark Richards が説明します。トランザクション・ストラテジーを実装するのに伴う長所と短所を理解することによって、データの完全性と整合性を高めることができ、また開発プロセスの後の方でリファクタリングの作業に苦労する必要がなくなります。
    2009/06/16  
 
多忙な Java 開発者のための Scala ガイド: Scala での並行性を探る
Java プログラマーの多く (大部分とは言えないまでも) にとって、初めて Scala に注意を向けることになる理由は、並行性を扱う場合やスレッド・セーフなコードを作成する場合に、Scala を使うことでコーディングが容易になることが約束されているからです。「多忙な Java 開発者のための Scala ガイド」の今回は、Ted Neward が、Scala 言語と Scala 環境に用意されている並行性のためのさまざまな機能やライブラリーを深く掘り下げます。
    2009/02/04  
 
Generics と並行性でコレクションにスパイスを利かせる
Java Collections Framework は Java プラットフォームの重要な特徴です。デスクトップ・アプリケーションとエンタープライズ・アプリケーションはいずれも、操作対象の項目を収集するのが一般的だからです。この記事では、Java SE 6 でこのフレームワークに加えられた拡張機能を利用しながらコレクションを操作する方法を紹介します。Generics と並行性を利用することで、HashMap や TreeSet よりも遥かにアプリケーションの管理および拡張が容易になります。
    2008/04/08  
 
ロープ: 理論と実践
Java 言語のデフォルトの String クラスと StringBuilder クラスは、大量のストリング・データを処理するシステムとなると十分に対応しきれません。この場合、これらのデフォルト・クラスより優れた手段となるのがロープ (rope) というデータ構造です。この記事では Java プラットフォームのロープ実装、Ropes for Java について紹介し、パフォーマンス上の問題を探るとともに、このライブラリーの効果的な使い方をアドバイスします。
    2008/02/12  
 
Java の診断を IBM スタイルで、第 3 回: Lock Analyzer for Java を使って同期とロックの問題を診断する
alphaWorks から入手できる IBM Lock Analyzer for Java は、実行中の Java アプリケーションで、ロックが起こっていないかをリアルタイムで監視するツールです。このツールを使うと、ロック競合の問題があり、アプリケーションのパフォーマンスを劣化させている可能性があるスレッドが明らかになります。開発者はこの情報を利用して、ロック競合が軽減するようアプリケーションを修正し、パフォーマンスを向上させることができます。今回の記事では IBM Lock Analyzer for Java を取り上げ、その基礎となるアーキテクチャーを説明するとともに、このツールの将来的な方向についての見解を紹介します。
    2007/10/16  
 
Javaの理論と実践: volatile を扱う
Java 言語に元々含まれている同期機構として、synchronized ブロック (およびメソッド) と volatile 変数の 2 つがあります。どちらも、スレッド・セーフにコードを描画するために提供されています。2 つのうち、volatile 変数の方が同期の仕組みとしては強力でない (しかし場合によると、より単純、あるいはコストが安い) のですが、誤った使い方をしやすいものでもあります。今回の Java の理論と実践では、Brian Goetz が volatile 変数を正しく使うためのパターンをいくつか調べ、volatile 変数を適用できる限界について注意を促します。
    2007/06/19  
 
緩い不変性モデルを実装する
不変オブジェクトは、スレッド・セーフなソフトウェアを書く上で大いに役立ちます。Java™ 言語では、不変性を保証するための基本的な機構として final フィールドを使います。しかし final フィールドはコンストラクターで設定する必要があり、しかも場合によると、この要求は厳しすぎることがあります。この記事では、もう少し制限の緩い不変性モデルを効率的に実装するための方法として、通常のキャッシュ・フィールドを使う方法を説明します。キャッシュ・フィールドの値には、同期を行わなくても安全にアクセスできるのです。
    2007/02/20  
 
Javaの理論と実践: ノンブロッキング・アルゴリズムの紹介
ノンブロッキング・アルゴリズムの設計と実装はきわめて困難になる場合がありますが、より高いスループットが期待でき、デッドロックや優先順位の逆転などのliveness(ライブネス)問題に対してより強固な対応が可能になります。今回の記事では、並行アルゴリズムの専門家であるBrian Goetzが、単純なノンブロッキング・アルゴリズムの仕組みを説明します。
    2006/04/18  
 
ConTestを使用したマルチスレッド・ユニットのテスト
この記事ではConTestというツールを紹介します。これは、並列プログラムのテストやデバッグ、カバレッジの測定に使用するツールです。これから説明しますが、ConTestは単体テストに代わるものではなく、並列プログラム上での単体テストの問題点を解決する補助的なテスト手法です。
    2006/04/04  
 
JavaプログラマーのためのCSP 第3回
今回は、JSCPによる開発での高度な話題として、AOPとの類似性、またjava.util.concurrentと比較してのJCSP、JSCPによる高度な同期化、などを取り上げます。
    2005/06/21  
 
JavaプログラマーのためのCSP 第2回
今回は、Abhijit Belapurkarが、JavaベースのJCSPライブラリーを使って、マルチスレッドのJavaアプリケーションを書く方法を説明します。
    2005/06/21  
 
JavaプログラマーのためのCSP 第1回
3回シリーズのこの記事では、developerWorksに何度か寄稿しているAbhijit Belapurkarが、マルチスレッド・プログラミングに関して皆さんが抱く恐怖感を完全克服するための道に案内します。今回は最初として、最も一般的な問題、つまり競合の危険性、デッドロック、ライブロック(livelock)、リソース不足(resource starvation)などの概要を見て行きます。
    2005/06/21  
 
Javaの理論と実践: アトミックで行く
この記事では、java.util.concurrentにアトミック変数クラスが追加されたことによって、いかに高度にスケーラブルな非ブロック・アルゴリズムがJavaで開発できるようになったかを解説して行きます。
    2004/11/23  
 
Tigerを使いこなす: スレッドでのデフォルト例外処理
この記事では、デフォルトの振る舞いを入れ換えることで出力をカスタム化する方法を説明します。
    2004/08/10  
 
Javaの理論と実践: Javaメモリ・モデルを修正する 第2回
今回は新しいJMMの下でvolatileやfinalの意味体系がどのように変わるか、またそうした変更によって、意味体系が大部分の開発者の直感に合うようになることを明らかにします。
    2004/03/30  
 
Javaの理論と実践: スレッド・セーフの特性について
スレッド・セーフは「全てかゼロか」の命題ではなく、定義が難しいものです。しかし、クラスがスレッド・セーフであるかどうかの分類をJavadocの中に記述する手間をかけるのは非常に重要なことなのです。
    2003/09/23  
 
Javaの理論と実践: 並行コレクション・クラス
今回、Brian Goetz氏は、HashtableやsynchronizedMapをConcurrentHashMapに変えるだけで、並行プログラムはどれだけ恩恵を得ることができるかについて説明をいたします。
    2003/07/23  
 
JavaOne 2003: テクニカル・セッション・サンプラー
developerWorksコラムニストBrian Goetzは、パフォーマンス管理のセッションから目立ったコンセプトを抽出するために、時間をとりました。
    2003/06/17  
 
Javaの理論と実践: (若干) シンプルになった並行性
今回の記事では、広く使用されている高品質のオープン・ソースの並行性ユーティリティー・パッケージである、 util.concurrent パッケージについて紹介します。
    2002/11/01  
 
Javaの理論と実践: スレッドはどこへ消えた?
スレッドは、注意していないと、(スタック) トレースに形跡を残さず、サーバー・アプリケーションから跡形もなく消えてしまう可能性があります。今回の記事では、「無許可離隊」してしまうスレッドを防止し検出するためのいくつかのテクニックを紹介します。
    2002/09/01  
 
Javaの理論と実践: スレッド・プールとワーク・キュー
どのサーバー・アプリケーションでもたいてい、スレッド・プールとワーク・キューに関する問題が出てきます。今回の記事では、スレッド・プールを使用する動機、いくつかの基本的な実装と調整のテクニック、回避すべきいくつかの一般的な障害について説明します。
    2002/07/01  
 
Javaの理論と実践: 安全な構築のテクニック
今回の記事では、「構築中に this 参照を拡張させる」一般的なスレッド化の問題について取り上げています。無害に見えるこの行動は、予測不可能で望ましくない結果をJavaプログラムにもたらす可能性があります。
    2002/06/01  
 
double-checked lockingとSingletonパターン
Javaプログラム言語には、いくつかの便利なプログラミング・イディオムが含まれています。この記事では、double-checked lockingイディオムのルーツを探り、それがなぜ開発されたのか、また、なぜ機能しないのかを検討します。
    2002/05/01  
 
特定通知パターンを適用してスレッドの実行順序を制御する
この記事で説明する特定の通知のサポートをJavaプラットフォーム追加することにより、待機中のスレッドの実行を直接制御することが可能になります。
    2001/12/01  
 
システム負荷を軽減したスレッド化: 常に共用が最善とは限らない
シリーズ第3回のこの記事では、ThreadLocal を紹介し、その実力を活用するためのヒントをお教えします。
    2001/10/01  
 
システム負荷を軽減したスレッド化: 競合を低減させる
競合を減らしてプログラムにおけるスケーラビリティーを改善するための、各種の技法を紹介しています。
    2001/09/01  
 
システム負荷を軽減したスレッド化: 同期化を敵視することはありません
3回シリーズで、Java言語のマルチスレッド・プログラミングの裏に潜む主要な問題について考察していきます。第1回は、同期化についてです。
    2001/07/01  
 
マルチスレッド化Javaアプリケーションの作成
この記事では、マルチスレッド化に関連した問題に焦点をあて、よく発生する問題についてのソリューションを提示します。
    2001/02/01  
 
Practical Javaからの抜粋:共用変数にアクセスするときにはsynchronizedまたはvolatileを使用する
「Practical Java」からの抜粋です。今回は共用変数にアクセスする時のメソッドの使い方についてです。
    2000/10/01  
 
Practical Javaからの抜粋:ロックされたオブジェクトのオブジェクト参照子を再割り当てしてはいけない
Addison-Wesley出版の「Practical Java」からの抜粋です。ロックされたオブジェクトに再割り当てを行うと何が起こるでしょうか?
    2000/10/01  
 
もしも自分が王様だったら: Javaプログラム言語のスレッド化不具合への解決策提案
より強力で、オブジェクト指向の考えを取り入れた、Java言語のスレッド化モデルの変更を提案しています。
    2000/10/01  
 
Practical Javaからの抜粋:デッドロックを避けるため、複数のロックを固定されたグローバルな順序で獲得する方法
この記事は、Practical Java (Addison-Wesley 発行)の抜粋です。デッドロックを回避する方法について述べています。
    2000/09/01  
 
効率的なスレッド・セーフ・クラスの作成
Java プログラム言語は、マルチスレッド・アプリケーションを作成するための強力な言語サポートを提供します。この記事では、プログラマーが効率的かつスレッド・セーフなクラスを作成する場合に使用できるいくつかのメソッドについて簡単に説明します。
    2000/04/01  
 
Practical Javaからの抜粋:インスタンス・メソッドの場合、synchronizedキーワードはオブジェクトをロックし、メソッドやコードをロックしないということを理解する
synchronized キーワードは、 メソッド修飾子またはメソッド内のステートメントとして使用します。この二重の使用法があるために、 synchronized キーワードの正確な機能について多少混乱が生じています。ここでは、synchronized キーワードの使用法について明らかにします。
    2000/02/01  
 
 タイトル  35    概要の非表示    
 
お探しの記事は見つかりませんでしたか? コンテンツを提案する