目次 | 前の項目 | 次の項目 | JavaTM Image I/O API ガイド |
スレッドに対する安全性
ImageReader
またはImageWriter
の特定のインスタンスについては、メソッドの再入可能 (同時) 呼び出しをサポートする必要はありません (例外は、現在の読み込みまたは書き込みを停止するように要求するabort
メソッドです)。しかし、同一のプラグインの複数のインスタンスが同時に稼動できるようにする必要はあります。簡潔にするため、読み込みプラグインの場合についてのみ、このあと説明します。完全な再入可能性をサポートするとしたら、読み込みプラグインは、自身の状態情報 (たとえば、現在の入力ソースなど) をすべて、別個の状態オブジェクトに入れておく必要があります。そうすれば、実行中のメソッドはその開始時に有効だった設定に従って作業を続けることができると同時に、別個のスレッドが状態を変更して次回の操作で使用することも可能になります。
もっと簡単な方法は、各
ImageReader
が自身の状態をこの方法で保持することを強制するのではなく、マルチスレッドの処理を実行したいアプリケーションが同じImageReader
クラスの複数のインスタンスを生成するように定めることです。これは、ImageReader
の状態を必ず static 以外のインスタンス変数を使って保持しなければならないことを意味していますが、プラグインの開発者にとってこの制約は重荷ではないはずです。