目次 | 前へ | 次へ

2.2 目標にしない事項

スレッドの安全性 ImageReader または ImageWriter の特定のインスタンスについては、メソッドの再入可能 (同時) 呼び出しをサポートする必要はありません (例外は、現在の読み込みまたは書き込みを停止するように要求する abort メソッドです)。しかし、同じプラグインクラスの複数のインスタンスが同時に稼動できるようにする必要はあります。簡潔にするため、読み込みプラグインの場合についてのみ、このあと説明します。

完全な再入可能性をサポートするとしたら、読み込みプラグインは、自身の状態情報 (たとえば、現在の入力ソースなど) をすべて、別個の状態オブジェクトに入れておく必要があります。そうすれば、実行中のメソッドはその開始時に有効だった設定に従って作業を続けることができると同時に、別個のスレッドが状態を変更して次回の操作で使用することも可能になります。

もっと簡単な方法は、各 ImageReader が自身の状態をこの方法で保持することを強制するのではなく、マルチスレッドの処理を実行したいアプリケーションが同じ ImageReader クラスの複数のインスタンスを生成するように定めることです。これは、ImageReader の状態を必ず static 以外のインスタンス変数を使って保持しなければならないことを意味していますが、プラグインの開発者にとってこの制約は重荷ではないはずです。



目次 | 前へ | 次へ

Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.
連絡先