Java

Portal

Javaの道
http://www.javaroad.jp/

Qiita - Javaエンジニアにお勧めする一度はたどり着くであろうサイトまとめ
http://qiita.com/deaf_tadashi/items/d72ac92dec1e66319f97

Programming Tutorials and Source Code Examples
http://www.java2s.com/

Javaの混沌とした名称の整理

まず、ざっくりこんな感じ

Java_Platforms.png

ざっくりとした呼び方 ちゃんとした呼び方 その中のJDK 対応するライブラリ群 備考
- - JDK 1.0 -
- - JDK 1.1 -
Java2 J2SE 1.2 JDK 1.2 -
Java3 J2SE 1.3 JDK 1.3 J2EE 1.2
Java4 J2SE 1.4 JDK 1.4 J2EE 1.3
Java5 J2SE 5.0 JDK 1.5 J2EE 1.4
Java6 Java SE 6 JDK 1.6 JavaEE5
Java7 Java SE 7 JDK 1.7 JavaEE6 OpenJDKはJava7相当
Java8 Java SE 8 JDK 1.8 JavaEE7
Java9 Java SE 9 JDK 1.9 JavaEE8
Java10 Java SE 10 JDK 1.10? JakartaEE9?

2018/3時点の名称に対する混沌とした状況

名称に関連した解りづらいこと

普通システム開発する時は、JavaEE(JakartaEE)のインストールは必要ない

なぜならWebコンテナ(TomcatやGrassfish、Websphere、JBOSSなど)が実装しているから。
つまり、TomcatをインストールすればJavaEEのAPIが使えるということ。

JavaEEを直接インストールする機会があるのは、基本的にWebコンテナそのものを開発する人なんかに限られるはず。

ちなみにOracleのサイトに行くとわかるけど、JavaEE SDKという名前になっていて、SDKという言葉でまた混乱してしまう。
忘れようSDKは。これはJavaEEなんだ。

JavaとJavaEEの対応バージョンが一致していない

伝統。JavaEEの方がバージョン番号が一つ少ない(Java9に対応しているのはJavaEE8まで)

触れてないこと

JavaME

組み込みの人以外は気にしなくてよい

JavaFX

忘れよう

OpenJDK

Java7相当らしい

Javaのサポート体制について

Qiita - Javaのサポートについてのまとめ
https://qiita.com/nowokay/items/edb5c5df4dbfc4a99ffb

orangeitems’s diary - 2018年にJavaを利用している人は全員理解すべきことを説明してみる(追記あり)
http://www.orangeitems.com/entry/2018/02/08/152022

デザインパターン(Gof23)

矢沢久雄の早わかりGoFデザインパターン
http://itpro.nikkeibp.co.jp/article/COLUMN/20051123/225074/

パターン名 直訳
オブジェクトの生成に関するパターン
Abstract Factory 抽象的な工場
Builder 構築者
Factory Method 工場メソッド
Prototype 原型
Singleton 一人っ子
プログラムの構造に関するパターン
Adapter 接続装置
Bridge
Composite 合成物
Decorator 装飾者
Facade 見かけ
Flyweight 軽量級
Proxy 代理人
オブジェクトの振る舞いに関するパターン
Chain of Responsibility 責任の連鎖
Command 命令
Interpreter 通訳
Iterator 繰り返し
Mediator 調停者
Memento 形見
Observer 観察者
State 状態
Strategy 戦略
Template Method ひな型メソッド
Visitor 訪問者

TECHSCORE デザインパターン
http://www.techscore.com/tech/DesignPattern/index.html/

ぱろっくの日記 - ソフトウェア構築手法まとめ
http://palloc.hateblo.jp/entry/2016/01/19/013932

デザインパターンはたくさんありますが、一般的にデザインパターンといわれたら、「GoFの23パターン」を指します。
GoFとは、Gang of Fourの略称で、種別は以下の3つがあります。

生成に関するパターン
singleton patternなど

構造に関するパターン
Decorator patternなど

振る舞いに関するパターン
Visitor patternなど

今回は、振る舞いに関するパターンについていくつか解説したいと思います。

ぼくにもわかるデザインパターン 第2章 GoFパターン大カタログ ~パターンがみるみる頭にしみこむ~
https://www.ulsystems.co.jp/topics/028

オンラインJava試験

Javaの道は蛇
http://503.boy.jp/java/start.php?l=b

Java 無料問題Web
http://www.shikaku-it.com/KENTEI/JAVA/

Java技術によるWebアプリケーション開発入門
http://jp.fujitsu.com/solutions/sdas/technology/web-apl/

Memo

Qiita - OutOfMemoryError の調べ方
http://qiita.com/opengl-8080/items/64152ee9965441f7667b

glot.io - 様々な言語のコードスニペットが共有できるサイト
https://glot.io/

エンジニアHub - 【若手Javaエンジニア必読!】とりあえず知っておかなきゃ損するフレームワーク・ツール23選
https://employment.en-japan.com/engineerhub/entry/2017/07/14/110000

知らなくても困らない Javaクラスのバイトコードの読み方
http://etc9.hatenablog.com/entry/2017/11/02/231509

Qiita - モダンなJava開発ガイド (2018年版)
https://qiita.com/yoichiwo7/items/17190cb440ab7d253cea

ヤフーにおけるJava事情を軽くご紹介します
https://techblog.yahoo.co.jp/bb/yahoo-java-usage-introduction/

Appendix

スレッドセーフ・スレッドアンセーフについて

Javaにおいても、スレッドセーフ・スレッドアンセーフに留意してプログラミングする事になります。
もしスレッド内でスレッドアンセーフなクラス、もしくはメソッドを使用した場合、再現性の低い、たちの悪い障害となっちゃう。。
(なんか、負荷が集中した時に、まれに発生するタイミング障害的なやつとか、処理は正常終了しているのに数値が正常な結果と合わないとか、ね。)

しかし、スレッドセーフなクラス一覧なんて気の利いたものは存在しないらしい。
困っている人がいたようなので、一覧を作ってみる。

スレッドアンセーフかどうか調べる

JavaDockから、"スレッド"という単語が含まれている文を抜き出す。簡単だけど、それでだいたい判断できる。
シェル芸でやってみた。Qの変数にクラス名を設定する。

$ Q="StringBuffer";P=`curl -s -L http://docs.oracle.com/javase/jp/7/api/overview-tree.html|grep /$Q.html|awk -F'"' '{print $4}'`;curl -s -L http://docs.oracle.com/javase/jp/7/api/$P|sed 's/<[^>]*>//g'|grep "スレッド"
スレッドセーフな可変の文字列。文字列バッファーは String に似ていますが、変更できる点が異なります。文字列バッファーには常に文字列が格納されていますが、文字列の長さと内容は特定のメソッドの呼び出しにより変更できます。
文字列バッファーは複数のスレッドによって安全に使用することができます。メソッドは必要に応じて同期化され、特定のインスタンスでのすべてのオペレーションが、関連のある個々のスレッドによって行われるメソッドの呼び出しの順序と一致する連続した順序で発生するように動作します。
 JDK 5 以降、このクラスは単一のスレッド StringBuilder により使用されるよう設計された等価のクラスで補足されています。 StringBuilder クラスは、このクラスと同じ処理をすべてサポートしながらも高速であり、同期を実行しないので、通常はこのクラスに優先して使用される必要があります。

そして、Java7のクラス全てについて、スレッドアンセーフの情報を抜き出してMarkdownの表で出力するシェルスクリプトを作った。
これでMarkdownの表形式一覧化できる。


#!/bin/bash

BASE_URL="http://docs.oracle.com/javase/jp/7/api/"
ALL_CLASSES=`curl -s ${BASE_URL}allclasses-frame.html|sed 's/<[^>]*>//g'|grep -v "すべてのクラス"`

echo "| class | thread info |"
echo "|-------|-------------|"
for CLASS in ${ALL_CLASSES}
do
  PARAM=`curl -s -L ${BASE_URL}overview-tree.html|grep /$CLASS.html|awk -F'"' '{print $4}'|head -1`
  CONTENT=`curl -s -L ${BASE_URL}$PARAM|sed 's/<[^>]*>//g'|grep "スレッド"|uniq`
  CONTENT=`echo $CONTENT|tr -d '\r\n'`
  CONTENT_LENGTH=$(echo $CONTENT|wc -c)

  if [ "$CONTENT_LENGTH" -gt 512 ]
  then
    CONTENT=`echo $CONTENT|cut -c1-512` 
    CONTENT=`echo "${CONTENT}.."` 
  fi

  if [ ! "${CONTENT}" == "" ]
  then
    echo "| [$CLASS]($BASE_URL$PARAM) | $CONTENT"
  fi
  sleep 1
done

スレッドアンセーフを気をつけなきゃいけないクラス一覧

上記のシェルスクリプトで出力した結果

ここに載ってないクラスについては、どうなってるか明確なドキュメントによる情報がないことになり、マルチスレッド環境化において、クラス変数とインスタンス変数のRead/Writeに注意を払う必要がある。

class thread info
AbstractDocument このクラスは、ドキュメントのロックメカニズムを実装します。これによって、複数の読み込みまたは 1 つの書き込みを扱えるようになり、複数の書き込みがあっても、ドキュメントのオブザーバ全員に以前の変更が通知されるまで、ドキュメントに別の変更を加えることができません。読み込みロックの取得および解放には、render メソッドを使います。書き込みロックは、ドキュメントを変更するメソッドによって取得され、そのメソッド呼び出しの間は保持されます。通知は、ドキュメントを変更するスレッド上で行われます。このスレッドは、通知の間はドキュメントへの完全な読み込みアクセス権を持っています。一方で、その他の書き込み側は、通知が完了するまではアクセスを許されません。通知は Beans イベント通知であり、すべてのリスナーが通知を受け取るまではほかの変更を許可しません。 このクラスからサブクラス化された任意のモデルで、BasicTextUI から派生した Look & Feel の実装を持つテキストコンポーネントと関連して使用されるものは、安全に非同期に更新されます。これは、ドキュメントのタイプが AbstractDocument の場..
AbstractDocument.AttributeContext このメソッドはスレッドセーフですが、ほとんどの Swing メソッドは違います。詳細は、「How to Use Threads」を参照してください。
AbstractInterruptibleChannel 具象チャネルクラスは、implCloseChannel メソッドも実装する必要があります。その場合、チャネルに対するネイティブの入出力操作の途中でブロックされているスレッドがあるときにこのメソッドが呼び出されると、例外をスローするか通常の方法でただちに終了するように実装します。スレッドに割り込みが発生した場合や、スレッドをブロックしているチャネルが非同期でクローズされた場合、チャネルの end メソッドは該当する例外をスローします。 このクラスは、Channel の仕様を実装するのに必要な同期処理を行います。implCloseChannel メソッドの実装では、チャネルをクローズしようとするほかのスレッドに対して同期処理を行う必要はありません。 このメソッドの実装は、このチャネルに対する入出力操作の途中でブロックされるその他のスレッドを、例外をスローするか、通常の方法を使ってただちに終了させることになっています。 ClosedByInterruptException - 入出力操作中にブロックされたスレッドに割り込みが発生した場合..
AbstractMap.SimpleImmutableEntry 不変のキーと値を維持するエントリ。このクラスは setValue メソッドをサポートしません。このクラスは、キーと値のマッピングのスレッドセーフなスナップショットを返すメソッドで便利な場合があります。
AbstractOwnableSynchronizer スレッドが排他的に所有できるシンクロナイザです。このクラスは、所有権の概念を必要とすることがあるロックや関連するシンクロナイザを作成するための基盤を提供します。AbstractOwnableSynchronizer クラス自体は、この情報を管理または使用しません。ただしサブクラスおよびツールでは、適切に保持された値を使用して、アクセスを制御および監視したり、診断を提供したりできます。 setExclusiveOwnerThread で最後に設定されたスレッドを返し、設定されたことがない場合は null を返します。 現在排他アクセスを所有するスレッドを設定します。 現在排他アクセスを所有するスレッドを設定します。null 引数は、アクセスを所有しているスレッドがないことを示します。それ以外の場合、このメソッドは同期や volatile フィールドのアクセスを行いません。 setExclusiveOwnerThread で最後に設定されたスレッドを返し、設定されたことがない場合は null を返します。それ以外の場合、このメソッドは同期や volatile フィールドのアクセスを行いません。 戻り値:所有するス..
AbstractPreferences このオブジェクトには、このノードをロックしたときに使用されるモニターが組み込まれています。このオブジェクトは、そのノード自体より優先され、ノードがロックされたときに意図的または非意図的にサービスが拒否される可能性を減少します。デッドロックを回避するために、下位ノードのロックを保持しているスレッドによって上位ノードがロックされることはありません。 この実装では、キーと値が正当であることを確認し、この設定ノードのロックを取得し、設定ノードが削除されていないことを確認して、putSpi(String,String) を呼び出します。また、設定変更リスナーがある場合は、イベントディスパッチスレッドに渡すために通知イベントをキューに入れます。 この実装では、この設定ノードのロックを取得し、設定ノードが削除されていないことを確認して、removeSpi(String) を呼び出します。また、設定変更リスナーがある場合は、イベントディスパッチスレッドに渡すために通知イベントをキューに入れます。 この実装は、この設定ノードのロックを取得し、設定ノードが削除されていないことを確認します。path が「」の場合は、このノードが返..
AbstractQueuedLongSynchronizer 排他モードで取得するために待機中のスレッドを含むコレクションを返します。 キュー内の最初の (待機時間のもっとも長い) スレッドを返します。現在キューにスレッドが入っていない場合は null を返します。 パーミットの取得を待機しているスレッドを含むコレクションを返します。 パーミットの取得を待機しているスレッドの推定数を返します。 共有モードで取得するために待機中のスレッドを含むコレクションを返します。 このシンクロナイザに関連付けられた指定の状態で待機中のスレッドを含むコレクションを返します。 このシンクロナイザに関連付けられた指定の状態で待機しているスレッドの推定数を返します。 このシンクロナイザの取得で競合しているスレッドが存在するかどうか (つまり、acquire メソッドがブロックされたかどうか) を照会します。 現在のスレッドより長いスレッドを待機中のスレッドが存在するかどうかを紹介します。 パーミットの取得を待機中のスレッドが存在するかどうかを照会します。 このシンクロナイザに関連付けられた指定の状態で待機しているスレッドが存在するかどうかを照会します。 現在の (呼び出し側の) スレッドに関..
AbstractQueuedSynchronizer このクラスは、デフォルトの排他モードと共有モードのどちらかまたは両方をサポートします。排他モードで取得されると、ほかのスレッドが取得を試みても成功しません。共有モードでは、複数のスレッドによる取得が可能です (ただし、必ず取得が成功する必要があるわけではない)。このクラスは、共有モードの取得が成功した場合、待機中の次のスレッド (存在する場合) も取得可能かどうかを判別する必要があるという機構的な意味を除き、これらの違いを「認識」しません。別のモードで待機中のスレッドは、同じ FIFO キューを共有します。通常、実装サブクラスはこれらのモードの 1 つだけをサポートしますが、ReadWriteLock などでは両方が機能することが可能です。排他モードまたは共有モードのみをサポートするサブクラスは、使用しないモードをサポートするメソッドを定義する必要はありません。 このクラスは、排他モードをサポートするサブクラスが Condition 実装として使用できる、入れ子にされた AbstractQueuedSynchronizer.ConditionObject クラスを定義します。これに関して、isHeldExcl..
AbstractSelectableChannel このクラスは、チャネルの登録、登録解除、クローズの処理を行うメソッドを定義します。このクラスは、このチャネルの現在のブロックモードと、現在の選択キーセットを管理します。また、SelectableChannel の仕様を実装するのに必要な同期処理をすべて実行します。このクラスに定義されている abstract protected メソッドの実装では、同じ操作を使用するほかのスレッドとの同期処理を行う必要はありません。 このメソッドの実装は、このチャネルに対する入出力操作の途中でブロックされるその他のスレッドを、例外をスローするか、通常の方法を使ってただちに終了させることになっています。..
AbstractSelector このメソッドの実装は、このセレクタに対する選択操作でブロックされているほかのスレッドを、wakeup メソッドを呼び出した場合のようにただちに終了する必要があります。 このメソッドを呼び出すと、セレクタに対する入出力操作でブロックされているスレッドの interrupt メソッドが呼び出された場合に、セレクタの wakeup メソッドが呼び出されます。
AccessControlContext さらに具体的に説明すると、AccessControlContext はコンテキストをカプセル化し、checkPermission というメソッドを持っています。このメソッドは、AccessController クラスの checkPermission メソッドと同等ですが、1 つ違いがあります。それは、AccessControlContext の checkPermission メソッドは、現在実行中のスレッドのコンテキストではなく、AccessControlContext がカプセル化するコンテキストに基づいて、アクセスを許可するかどうかを決定することです。 したがって、AccessControlContext を使用するのは、指定したコンテキスト内で行うセキュリティーチェックを、実際には別のコンテキスト内から (たとえば、ワークスレッド内から) 行う必要がある場合です。..
AccessController 現在のスレッドが呼び出し元 1 から数字の昇順で m 個の呼び出し元をトラバースし、呼び出し元 m が checkPermission メソッドを呼び出すとします。このとき、checkPermission メソッドは次のアルゴリズムに基づいて、アクセスが許可されるか拒否されるかを決定します。 checkPermission は、常に現在実行しているスレッドのコンテキスト内でセキュリティーチェックを行います。しかし実際には、指定されたコンテキスト内で行うセキュリティーチェックを、別のコンテキスト内から (たとえば、ワーカースレッド内から) 行わなければならない場合もあります。この状況に対応するために、getContext メソッドと AccessControlContext クラスが提供されています。getContext メソッドは、現在の呼び出しコンテキストを AccessControlContext オブジェクトに格納して返します。呼び出しの例を次に示します。 AccessControlContext 自体が checkPermission メソッドを持っており、このメソッドを使って、現在の実行スレッドのコ..
AclEntry ACL エントリは不変であるため、複数の並行スレッドで安全に使用できます。
AclEntry ACL エントリは不変であるため、複数の並行スレッドで安全に使用できます。
AclEntry.Builder ビルダーオブジェクトは可変であり、適切な同期処理を行わずに複数の並行スレッドで安全に使用することはできません。
ActiveEvent AWT イベントディスパッチャースレッドによってディスパッチされたときに、Runnable 上で run() メソッドを実行するイベントです。このクラスは、新しいクラスを宣言して dispatch() を定義する代わりに、ActiveEvent の参照実装として使用できます。 イベントがディスパッチされるか、ディスパッチ中に例外がスローされた場合は、true を返し、それ以外の場合は false を返します。このメソッドは、notifier.wait() メソッドを呼び出す待機中スレッドによって呼び出すようにしてください。見せかけの復帰が可能なため (Object.wait() で説明)、イベントを確実にディスパッチするには、このメソッドを待機中ループで使用するようにしてください。 イベントをディスパッチせずに待機中スレッドが復帰すると、isDispatched() メソッドによって false が返され、while ループが再度実行されるため、復帰したスレッドが待機モードに戻ります。 待機中スレッドが notifier.wait() メソッドに入る前に notifier.notifyAll() が発生すると..
ACTIVITY_REQUIRED ACTIVITY_REQUIRED システム例外は Activity コンテキストを必要とするメソッドで発生する場合があります。これは、呼び出された操作の実行に Activity コンテキストが必要であったものの、呼び出し側スレッドに関連付けられていなかったことを示します。
Adjustable 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
AdjustmentListener AWTEventMulticaster は、java.awt.event パッケージで定義された AWT イベントのための効率的で、スレッドセーフなマルチキャストイベントディスパッチを実装します。
Applet Applet のサブクラスで初期化処理を行う場合は、このメソッドをオーバーライドする必要があります。たとえば、スレッドを使用するアプレットの場合は、init メソッドでスレッドを作成し、destroy メソッドでスレッドを破棄します。 破棄する前になんらかの処理を行う場合は、Applet のサブクラスではこのメソッドをオーバーライドする必要があります。たとえば、スレッドを使用するアプレットの場合は、init メソッドでスレッドを作成し、destroy メソッドでスレッドを破棄します。..
Arc2D 孤の境界を定義する繰り返しオブジェクトを返します。このイテレータは、マルチスレッドに対して安全です。Arc2D では、弧の幾何学的図形への変更が、その幾何学的図形のすでに進行中のどの反復にも影響を与えないことが保証されます。
ArrayBlockingQueue このクラスでは、待機中のプロデューサおよびコンシューマスレッドの順序付けのためのオプションの公平性ポリシーをサポートします。デフォルトでは、この順序付けは保証されていません。ただし、公平性を true に設定して構築されたキューでは、スレッドが FIFO の順序でアクセスすることが許可されます。通常は、公平性によりスループットが低下しますが、変動性も低下するため、枯渇状態になることはありません。 パラメータ:capacity - このキューの容量fair - true の場合、挿入または削除でブロックされたスレッドに対するキューアクセスが FIFO の順序で処理される。false の場合、アクセス順は指定されない。 パラメータ:capacity - このキューの容量fair - true の場合、挿入または削除でブロックされたスレッドに対するキューアクセスが FIFO の順序で処理される。false の場合、アクセス順は指定されない。c - 初期状態で含む要素のコレクション remainingCapacity を調べても要素の挿入試行が成功するかどうかがわかるとはかぎりません。これは別のスレッドが要素を挿入ま..
ArrayDeque Deque インタフェースのサイズ変更可能な配列実装です。配列の両端キューに容量制限はなく、使用量をサポートするために必要に応じて大きくなります。それらはスレッドセーフではありません。外部の同期化がない場合、複数のスレッドによる並行アクセスはサポートされません。null 要素は禁止されています。このクラスは通常、スタックとして使われるときは Stack よりも高速で、キューとして使われるときは LinkedList よりも高速です。..
ArrayList この実装は同期化されません。複数のスレッドが並行して ArrayList のインスタンスにアクセスし、1 つ以上のスレッドが構造的にリストを変更する場合には、リストを外部的に同期化する必要があります。構造的な変更とは、1 つ以上の要素を追加または削除したり、基になる配列のサイズを明示的に変更したりする処理のことです。要素の値だけを設定する処理は、構造的な変更ではありません。通常、リストの同期をとるには、リストを自然にカプセル化するオブジェクトで同期をとります。..
AsyncBoxView 非同期にレイアウトを行うボックスです。GUI イベントスレッドにレイアウトを行わないで GUI イベントスレッドを移動させ続けるのに役立ちます。レイアウトは子ビューの操作で詳細に行われます。各子ビューがレイアウトの一部にアクセスされたあと (操作に時間がかかる場合がある)、残りのタスクを放棄することも、新しい優先度の高いタスク (つまり同期の要求または可視領域にサービスすること) を行うこともできます。 主軸に沿って変更された要件です。指定された ChildState オブジェクトのレイアウトを行うスレッドが、子ビューの新しい設定を取得し終えたときに呼び出します。呼び出すのは通常レイアウトスレッドですが、モデルとビューの変換の実行など、イベントスレッドが何かをすぐに更新しようとしている場合は、イベントスレッドのこともあります。 副軸に沿って変更された要件です。指定された ChildState オブジェクトのレイアウトを行うスレッドが、子ビューの新しい設定を取得し終えたときに呼び出します。呼び出すのは通常レイアウトスレッドですが、モデルとビューの変換の実行など、GUI スレッドが何かをすぐに更新しようとしている..
AsynchronousByteChannel この型のチャネルは、複数のスレッドで並行して使用できます。並行読み取りおよび書き込みがサポートされますが、最大で 1 つの読み取り操作と 1 つの書き込み操作が常に未処理になる可能性があります。前の読み取り操作が終了する前にスレッドが読み取り操作を開始すると、ReadPendingException がスローされます。同様に、前の書き込みが終了する前に書き込み操作を開始しようとすると、WritePendingException がスローされます。 バッファーは、複数のスレッドで並行して使用できないため、操作が完了するまでバッファーにアクセスしないように注意してください。 このメソッドはいつでも呼び出すことができます。チャネルタイプによっては、特定の時点で複数の読み取りが未処理になることが許可されない場合があります。前の読み取り操作が終了する前にスレッドが読み取り操作を開始すると、ReadPendingException がスローされます。 バッファーは、複数のスレッドで並行して使用できないため、操作が完了するまでバッファーにアクセスしないように注意してください。 このメソッドはいつでも呼び出すことができます。..
AsynchronousChannel AsynchronousFileChannel は、入出力イベントを処理して、チャネルで入出力操作の結果を消費する終了ハンドラにディスパッチするために、タスクの送信先のスレッドプールに関連付けられます。チャネルで開始された入出力操作の終了ハンドラは、スレッドプール内のいずれかのスレッドによって呼び出されることが保証されます (これによって、終了ハンドラは必ず、予期される ID を持つスレッドによって実行されます)。入出力操作がただちに終了し、開始スレッド自体がスレッドプール内の 1 つのスレッドである場合、終了ハンドラは開始スレッドによって直接呼び出されることがあります。スレッドプールを指定せずに AsynchronousFileChannel が作成される場合、チャネルは、ほかのチャネルと共有される可能性がある、システムに依存するデフォルトのスレッドプールに関連付けられます。デフォルトのスレッドプールは、AsynchronousChannelGroup クラスで定義されたシステムプロパティーによって構成されます。 この型のチャネルは、複数のスレッドで並行して使用できます。close メソッドは、Channe..
AsynchronousChannelGroup 非同期チャネルグループは、グループにバインドされた asynchronous channels によって開始された入出力操作の完了を処理するために必要な機構をカプセル化します。グループには、グループ内のチャネルで実行される非同期操作の結果を消費する入出力イベントを処理して、completion-handlers にディスパッチするための、タスクの送信先に関連するスレッドプールがあります。プールされたスレッドは、入出力イベントの処理に加えて、非同期入出力操作の実行をサポートするために必要なその他のタスクを実行することもあります。 非同期チャネルグループは、ここで定義された withFixedThreadPool メソッドまたは withCachedThreadPool メソッドを呼び出すことで作成されます。チャネルは、チャネルの構築時にグループを指定することでグループにバインドされます。関連するスレッドプールは、グループによって所有されます。グループを終了すると、関連するスレッドプールがシャットダウンされます。 Java 仮想マシンは、明示的に作成されたグループのほかに、自動的に構築されるシステム全体のデフォル..
AsynchronousChannelProvider このクラス内のすべてのメソッドは、複数の並行スレッドで安全に使用できます。 指定されたスレッドプールで新しい非同期チャネルグループを構築します。 固定されたスレッドプールで新しい非同期チャネルグループを構築します。 パラメータ:nThreads - プール内のスレッド数threadFactory - 新規スレッドの作成時に使用するファクトリ 指定されたスレッドプールで新しい非同期チャネルグループを構築します。 パラメータ:executor - スレッドプールinitialSize - >=0 の値、実装固有のデフォルトの場合は負の値..
AsynchronousCloseException 別のスレッドがチャネルまたは入出力操作時にブロックされるチャネルの一部をクローズしたときにスレッドが受け取るチェック例外です。
AsynchronousFileChannel AsynchronousFileChannel は、入出力イベントを処理して、チャネルで入出力操作の結果を消費する終了ハンドラにディスパッチするために、タスクの送信先のスレッドプールに関連付けられます。チャネルで開始された入出力操作の終了ハンドラは、スレッドプール内のいずれかのスレッドによって呼び出されることが保証されます (これによって、終了ハンドラは必ず、予期される ID を持つスレッドによって実行されます)。入出力操作がただちに終了し、開始スレッド自体がスレッドプール内の 1 つのスレッドである場合、終了ハンドラは開始スレッドによって直接呼び出されることがあります。スレッドプールを指定せずに AsynchronousFileChannel が作成される場合、チャネルは、ほかのチャネルと共有される可能性がある、システムに依存するデフォルトのスレッドプールに関連付けられます。デフォルトのスレッドプールは、AsynchronousChannelGroup クラスで定義されたシステムプロパティーによって構成されます。 この型のチャネルは、複数のスレッドで並行して使用できます。close メソッドは、Channe..
AsynchronousServerSocketChannel このタイプのチャネルは複数の並行スレッドで安全に使用できますが、最大で 1 つの受け付け操作が常に未処理になる可能性があります。前の受け付け操作が終了する前にスレッドが受け付け操作を開始すると、AcceptPendingException がスローされます。 新しい接続の並行処理を可能にするために、新しい接続がすぐに受け付けられたときに、終了ハンドラは開始スレッドによって直接呼び出されません (「スレッド」を参照)。..
AsynchronousSocketChannel この型のチャネルは、複数のスレッドで並行して使用できます。並行読み取りおよび書き込みがサポートされますが、最大で 1 つの読み取り操作と 1 つの書き込み操作が常に未処理になる可能性があります。前の読み取り操作が終了する前にスレッドが読み取り操作を開始すると、ReadPendingException がスローされます。同様に、前の書き込みが終了する前に書き込み操作を開始しようとすると、WritePendingException がスローされます。 バッファーは、複数のスレッドで並行して使用できないため、操作が完了するまでバッファーにアクセスしないように注意してください。 このメソッドはいつでも呼び出すことができます。チャネルタイプによっては、特定の時点で複数の読み取りが未処理になることが許可されない場合があります。前の読み取り操作が終了する前にスレッドが読み取り操作を開始すると、ReadPendingException がスローされます。 バッファーは、複数のスレッドで並行して使用できないため、操作が完了するまでバッファーにアクセスしないように注意してください。 このメソッドはいつでも呼び出すことができます。..
AtomicMarkableReference 「現在の参照 == 予想される参照」である場合は、マークの値を指定された更新値に原子的に設定します。この操作の指定された呼び出しはすべて、見かけ上失敗する (false を返す) 可能性があります。ただし、現在の値が予想される値を保持し、値の設定を試みるほかのスレッドが存在しない場合は、呼び出しが繰り返されることで最終的に成功します。
AtomicStampedReference 「現在の参照 == 予想される参照」である場合は、スタンプの値を指定された更新値に原子的に設定します。この操作の指定された呼び出しはすべて、見かけ上失敗する (false を返す) 可能性があります。ただし、現在の値が予想される値を保持し、値の設定を試みるほかのスレッドが存在しない場合は、呼び出しが繰り返されることで最終的に成功します。
AttributeModificationException AttributeModificationException インスタンスは、並行マルチスレッドアクセスに対して同期化されません。単一の AttributeModification インスタンスへのアクセスおよびそのインスタンスを変更しようとする複数のスレッドによって、オブジェクトはロックされます。
AttributeSetUtilities 属性セット S の同期ビュー V により、クライアントは S への複数のスレッドセーフな同期アクセスができるようになります。V の各操作は、V 自体をロックオブジェクトとして使って同期化され、S の対応する操作を単に呼び出します。相互に排他的なアクセスを保証するためには、S に対するすべてのアクセスが V を介して実行されることが重要です。属性セットオブジェクト S が直列化可能の場合、同期ビューオブジェクト V は直列化可能です。..
AWTEventMulticaster AWTEventMulticaster は、java.awt.event パッケージで定義された AWT イベントのための効率的で、スレッドセーフなマルチキャストイベントディスパッチを実装します。
AWTPermission 特定のスレッドに KeyboardFocusManager を設定する SecurityManager がインストールされている場合、呼び出し側のスレッドには、現在の KeyboardFocusManager を置き換えるために、このアクセス権が与えられていなければならない。アクセス権が与えられていない場合 SecurityException がスローされる
BasicAttribute BasicAttribute インスタンスは、並行マルチスレッドアクセスに対しては同期化されません。BasicAttribute にアクセスおよび変更しようとする複数のスレッドによって、オブジェクトはロックされます。
BasicAttributes BasicAttributes インスタンスは、並行マルチスレッドアクセスに対して同期化されません。単一の BasicAttributes インスタンスをアクセスおよび変更しようとする複数のスレッドによって、オブジェクトはロックされます。
BasicDirectoryModel このメソッドは、ファイルロードスレッドに割り込むとき使用します。
BasicProgressBarUI アニメーションスレッドを起動します (必要に応じて作成して初期化します)。 アニメーションスレッドを停止します。 アニメーションスレッドを起動します (必要に応じて作成して初期化します)。このメソッドは、不確定モードの進捗バーがアニメーションを開始するべきときに呼び出されます。これには次のような理由があります。 独自のアニメーションスレッドを実装する場合は、このメソッドをオーバーライドする必要があります。 アニメーションスレッドを停止します。このメソッドは、不確定モードのアニメーションを停止するべきときに呼び出されます。これには次のような理由があります。 独自のアニメーションスレッドを実装する場合は、このメソッドをオーバーライドする必要があります。 現在のアニメーションフレームのインデックスを次の有効値に設定します (進捗バーが再ペイントされます)。次の有効値は、デフォルトでは、現在のアニメーションインデックスに 1 を足したものです。新しい値が大きすぎる場合、このメソッドはインデックスを 0 に設定します。インデックスが特定の進捗バーインスタンスに必要なフレーム数を超えないようにするには、サブクラスがこのメ..
BasicTextUI また、JTextComponent に関連付けられた Document が AbstractDocument のサブクラスである場合、このクラスはいくつかの並行サポートも提供します。View または View 階層へのアクセスは、モデルを変更するスレッドと Swing イベントスレッド (レンダリング、モデルとビュー座標変換などを行う) との間で直列化されます。ルートビューにアクセスするときは、最初に AbstractDocument で読み取りロックを獲得して、そのロックを finally ブロックで解放するようにしてください。 このスレッドのビューからモデルが変更されないという保証付きで、安全にインタフェースをペイントします。 このスレッドのビューからモデルが変更されないという保証付きで、安全にインタフェースをペイントします。このメソッドは、後方から前方に向かってレンダリングしながら次のことを実行します。 注:注:また、スーパークラスはバックグラウンドのレンダリングでスレッドセーフではありません。ただし、このことはデフォルトレンダリングでは問題になりません。 インタフェースをペイントします。このメソッドは..
BitSet BitSet が、外部の同期化を行わずにマルチスレッドを使用するのは安全ではありません。
BlockingDeque remainingCapacity を調べても要素の挿入試行が成功するかどうかがわかるとはかぎりません。これは別のスレッドが要素を挿入または削除しようとしている可能性があるためです。
BlockingQueue このクラスでは、待機中のプロデューサおよびコンシューマスレッドの順序付けのためのオプションの公平性ポリシーをサポートします。デフォルトでは、この順序付けは保証されていません。ただし、公平性を true に設定して構築されたキューでは、スレッドが FIFO の順序でアクセスすることが許可されます。通常は、公平性によりスループットが低下しますが、変動性も低下するため、枯渇状態になることはありません。 パラメータ:capacity - このキューの容量fair - true の場合、挿入または削除でブロックされたスレッドに対するキューアクセスが FIFO の順序で処理される。false の場合、アクセス順は指定されない。 パラメータ:capacity - このキューの容量fair - true の場合、挿入または削除でブロックされたスレッドに対するキューアクセスが FIFO の順序で処理される。false の場合、アクセス順は指定されない。c - 初期状態で含む要素のコレクション remainingCapacity を調べても要素の挿入試行が成功するかどうかがわかるとはかぎりません。これは別のスレッドが要素を挿入ま..
BoxLayout このメソッドは、コンテナで無効なメソッドが呼び出されたときに AWT によって呼び出されます。無効なメソッドはイベントスレッドに非同期的に呼び出すことができるため、このメソッドも非同期的に呼び出すことができます。
BrokenBarrierException スレッドが故障状態にあるバリアーを待機しようとしているとき、または待機中にバリアーが故障状態になったときに、例外をスローします。
Buffer スレッドの安全性 バッファーは、複数の並行スレッドによる使用において安全ではありません。複数のスレッドで使用する場合は、適切な同期処理によってバッファーへのアクセスを制御する必要があります。
BufferedInputStream この入力ストリームのメソッドの次の呼び出しによって、ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数を返します。次の呼び出しは、同じスレッドの場合も別のスレッドの場合もあります。このような多数のバイトを 1 回で読み込んだりスキップしたりすることでブロックすることはありませんが、読み込むまたはスキップするバイト数が少なくなることがあります。..
BufferStrategy 描画バッファーのグラフィックスコンテキストを作成します。このメソッドはパフォーマンスの理由から同期しない場合があります。複数スレッドでこのメソッドを使用するには、アプリケーションレベルでの処理が必要です。取得したグラフィックスオブジェクトの処理は、アプリケーション側で行う必要があります。
Button AWT スレッドモデルの詳細は、「AWT Threading Issues」を参照してください。
ByteChannel データグラムチャネルは、複数の並行スレッドで安全に使用できます。データグラムチャネルは並行読み込みおよび書き込みをサポートします。ただし、読み込みを行うスレッドも書き込みを行うスレッドも特定の時点では常に 1 個以下です。 AsynchronousCloseException - 接続操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合 ClosedByInterruptException - 接続操作の進行中に別のスレッドからの割り込みがあったためにチャネルがクローズし、現在のスレッドの割り込みステータスが設定された場合 このメソッドはいつでも呼び出すことができます。ただし、ほかのスレッドがこのチャネルに対して読み込み操作を開始している場合、このメソッドの呼び出しは最初の操作が終わるまでブロックされます。このチャネルのソケットがバインドされていない場合は、このメソッドは bind メソッドを null のパラメータで呼び出した場合と同様に、最初にソケットを自動的に割り当てられるアドレスにバインドします。 AsynchronousCloseException - 読み取り操作の進行中に、別のス..
CachedRowSet 注: 複数のスレッドが createShared() メソッドによって作成された RowSet オブジェクトにアクセスする場合、共有データの整合性を確保するため、次の動作が指定されます。すべての共有された RowSet オブジェクトの読み取りと書き込みは、各オブジェクトと配下の単一の表構造間で逐次行われる必要があります。
Callable Callable インタフェースは Runnable と似ていて、どちらもインスタンスが別のスレッドによって実行される可能性があるクラス用に設計されています。ただし、Runnable は結果を返さず、チェック例外をスローすることができません。
CallSite ターゲットへの更新をほかのスレッドから即時かつ確実に確認できる必要があるために volatile 変数セマンティクスを持つ可変ターゲットが必要な場合には、揮発性コールサイトを使用できます。
CancelablePrintJob サービスの実装者は、このオプションインタフェースを実装し、このインタフェースの実装を使用してジョブの取り消しに成功した場合に javax.print.event.PrintJobEvent.JOB_CANCELLED イベントをリスナーに送信するようにしてください。また、印刷要求を実行したスレッドとは別のクライアントスレッドからも作成可能である点にも留意してください。このため、このインタフェースの実装を、スレッドに対して安全にする必要があります。 サービスによっては、サーバーへの要求や印刷キューの処理などのために、取り消しプロセスに時間がかかる場合があります。クライアントによっては、アプリケーションの実行に影響しないスレッドで取り消しを実行することが望ましい場合があります。..
CannotProceedException CannotProceedException インスタンスは、並行マルチスレッドアクセスに対しては同期化されません。複数のスレッドから CannotProceedException にアクセスして変更する場合は、オブジェクトをロックする必要があります。
Caret この実装は、非同期通知のソースが 2 つあることを前提とします。タイマースレッドは非同期にトリガーされ、これにより、キャレットは最新のバウンディングボックスにペイントし直されます。また、キャレットはドキュメントが更新されるたびに変更を追跡します。通常、ドキュメントの更新は、マウスイベントまたはキーボードイベントによるイベントディスパッチスレッドにおいて発生します。キャレットの動作は、ドキュメントの同期的な更新でも非同期的な更新でも、UpdatePolicy プロパティーによって制御されます。新しいキャレット位置の再ペイントは、必ずイベントスレッドに上で発生します。これは、modelToView の呼び出しがイベントスレッド上でのみ安全だからです。 キャレットの外観は、paint メソッドを実装し直すことでカスタマイズできます。paint メソッドを変更する場合には、damage メソッドも実装し直して、キャレットの描画に使われる領域を描画し直してください。キャレットは、Rectangle クラスを拡張しているため、キャレットが最後に描画されたバウンディングボックスを保持しています。これによって、キャレットが移..
CertPath すべての CertPath オブジェクトは、スレッドに対して安全である必要があります。つまり、単一の (または複数の) CertPath オブジェクト上で、このクラスに定義されたメソッドを複数のスレッドが同時に呼び出しても、悪影響はありません。このことは CertPath.getCertificates が返す List についても当てはまります。 CertPath オブジェクトは、不変かつスレッドに対して安全でなければならないので、アクセスの調整を心配することなく、オブジェクトをさまざまなコードに渡すことができます。CertPath オブジェクトと List オブジェクトが不変なので、通常、スレッドに対して安全にすることは難しくありません。 この証明書パス内の証明書のリストを返します。返される List は不変で、スレッドに対して安全である必要があります。..
CertPathBuilder このクラスの static メソッドは、スレッドセーフであることが保証されています。このクラスで定義されている static メソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。 しかしこのことは、このクラスで定義されている非 static メソッドには当てはまりません。特定のプロバイダで特に説明がないかぎり、単一の CertPathBuilder インスタンスに並行してアクセスする必要のある複数スレッドは、スレッド間で同期を取り、必要に応じてロックしなければいけません。異なる CertPathBuilder インスタンスを操作する複数スレッドは、同期化される必要はありません。..
CertPathBuilderException 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
CertPathBuilderResult 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
CertPathBuilderSpi このクラスのインスタンスは、複数スレッドからの並行アクセスから保護される必要はありません。単一の CertPathBuilderSpi インスタンスに並行アクセスする必要のあるスレッドは、それらのスレッド間で同期を取り、ラップする CertPathBuilder オブジェクトを呼び出す前に必要なロックを提供しなければいけません。 しかし、異なる CertPathBuilderSpi インスタンスを操作する複数スレッド間では同期を取る必要がないため、CertPathBuilderSpi の実装では並行性の問題が発生する可能性があります。..
CertPathParameters 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
CertPathValidator このクラスの static メソッドは、スレッドセーフであることが保証されています。このクラスで定義されている static メソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。 しかしこのことは、このクラスで定義されている非 static メソッドには当てはまりません。特定のプロバイダで特に説明がないかぎり、単一の CertPathValidator インスタンスに並行してアクセスする必要のある複数スレッドは、スレッド間で同期を取り、必要に応じてロックしなければいけません。異なる CertPathValidator インスタンスを操作する複数スレッドは、同期化される必要はありません。..
CertPathValidatorException 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
CertPathValidatorResult 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
CertPathValidatorSpi このクラスのインスタンスは、複数スレッドからの並行アクセスから保護される必要はありません。単一の CertPathValidatorSpi インスタンスに並行アクセスする必要のあるスレッドは、それらのスレッド間で同期を取り、ラップする CertPathValidator オブジェクトを呼び出す前に必要なロックを提供しなければいけません。 しかし、異なる CertPathValidatorSpi インスタンスを操作する複数スレッド間では同期を取る必要がないため、CertPathValidatorSpi の実装では並行性の問題が発生する可能性があります。..
CertSelector 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
CertStore CertStore オブジェクトのすべての public メソッドは、スレッドセーフでなければいけません。つまり、単一の (または複数の) CertStore オブジェクト上で、複数のスレッドがこれらのメソッドを並行して呼び出しても、悪影響はありません。これにより、たとえば CertPathBuilder は、CRL を検索しながら同時にほかの証明書を検索できます。 また、このクラスの static メソッドは、スレッドセーフであることが保証されています。このクラスで定義されている static メソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。..
CertStoreException 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
CertStoreParameters 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。 Collection で初期化された Collection CertStore のメソッドをあるスレッドが呼び出しているときに、その Collection が変更される場合、その Collection にはフェイルファストイテレータが必要です。..
CertStoreSpi すべての CertStoreSpi オブジェクトの public メソッドは、スレッドに対して安全である必要があります。つまり、単一の (または複数の) CertStoreSpi オブジェクト上で、複数のスレッドがこれらのメソッドを並行して呼び出しても、悪影響はありません。これにより、たとえば CertPathBuilder は、CRL を検索しながら同時にほかの証明書を検索できます。 簡単な CertStoreSpi の実装では、synchronized キーワードを engineGetCertificates メソッドと engineGetCRLs メソッドに追加することで、スレッドに対して安全であることが保証されます。高度な実装では、真の並行アクセスが可能になります。..
Channel 具象チャネルクラスは、implCloseChannel メソッドも実装する必要があります。その場合、チャネルに対するネイティブの入出力操作の途中でブロックされているスレッドがあるときにこのメソッドが呼び出されると、例外をスローするか通常の方法でただちに終了するように実装します。スレッドに割り込みが発生した場合や、スレッドをブロックしているチャネルが非同期でクローズされた場合、チャネルの end メソッドは該当する例外をスローします。 このクラスは、Channel の仕様を実装するのに必要な同期処理を行います。implCloseChannel メソッドの実装では、チャネルをクローズしようとするほかのスレッドに対して同期処理を行う必要はありません。 このメソッドの実装は、このチャネルに対する入出力操作の途中でブロックされるその他のスレッドを、例外をスローするか、通常の方法を使ってただちに終了させることになっています。 ClosedByInterruptException - 入出力操作中にブロックされたスレッドに割り込みが発生した場合..
Channels 結果として得られるストリームの read メソッドは、基本となるチャネルが非ブロックモードである場合に呼び出されると、IllegalBlockingModeException をスローします。ストリームはバッファーされず、mark メソッドも reset メソッドもサポートしません。ストリームは複数の並行スレッドからのアクセスに対して安全です。ストリームをクローズするとチャネルもクローズします。 結果として得られるストリームの write メソッドは、基本となるチャネルが非ブロックモードである場合に呼び出されると、IllegalBlockingModeException をスローします。ストリームはバッファーに書き込まれません。ストリームは複数の並行スレッドからのアクセスに対して安全です。ストリームをクローズするとチャネルもクローズします。 ストリームはバッファーされず、mark メソッドも reset メソッドもサポートしません。ストリームは複数の並行スレッドからのアクセスに対して安全です。ストリームをクローズするとチャネルもクローズします。 ストリームはバッファーに書き込まれません。ストリームは複数の並行..
Charset このクラスで定義されているすべてのメソッドは、複数の並行スレッドで安全に使用できます。
CharsetDecoder このクラスのインスタンスは、複数のスレッドで並行して使用することはできません。
CharsetEncoder このクラスのインスタンスは、複数のスレッドで並行して使用することはできません。
CharsetProvider 文字セットプロバイダは、ゼロ引数コンストラクタといくつかの関連文字セット実装クラスを備えた、このクラスの具象サブクラスです。文字セットプロバイダは、拡張機能 (通常の拡張ディレクトリに配置される jar ファイル) として、Java プラットフォームのインスタンスにインストールできます。プロバイダを利用可能にするには、アプレットまたはアプリケーションのクラスパスに追加するか、プラットフォーム固有の方法を使います。文字セットプロバイダを検索するには、現在のスレッドのコンテキストクラスローダーを使用します。..
Checkbox AWT スレッドモデルの詳細は、「AWT Threading Issues」を参照してください。
CheckboxMenuItem AWT スレッドモデルの詳細は、「AWT Threading Issues」を参照してください。
Choice AWT スレッドモデルの詳細は、「AWT Threading Issues」を参照してください。
ChoiceFormat choice フォーマットは同期化されません。スレッドごとに別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
ClassLoadingMXBean このメソッドは、複数のスレッドにより同時に呼び出すことができます。メソッドが呼び出されるたびに、詳細出力は大域的に有効または無効になります。
ClassValue このメソッドは、get メソッドで最初に値にアクセスしたスレッド内で呼び出されます。 クラスへの値の実際のインストールは、原子的に実行されます。その時点で、いくつかの競合スレッドに計算値が含まれていた場合、その 1 つが選択され、それがすべての競合スレッドに返されます。 スレッド T が状態 2N のクラス値を削除する場合、そのクラス値はすでに初期化解除されているので、何も起こりません。それ以外の場合、状態は原子的に 2N+1 に進められます。 スレッド T が状態 2N のクラス値を照会する場合、スレッドはまず、クラス値を状態 2N+1 に初期化するために、computeValue を呼び出してその結果の値をインストールします。 次に、T2 (または 3 つ目のスレッド) が CV.remove(C) を呼び出し、T2 の作業を元に戻す..
Clipboard 引数 owner とは異なる既存のオーナが存在する場合、そのオーナには、そのオーナの ClipboardOwner.lostOwnership() の呼び出しによって、クリップボードの内容の所有権を失ったことが通知されます。setContents() の実装は、このメソッドから直接 lostOwnership() を呼び出す必要はありません。たとえば、あとで別のスレッドで lostOwnership() を呼び出すことができます。このクリップボードに登録された FlavorListener にも同じことがあてはまります。..
Closeable URLClassLoader のインスタンスを生成したスレッドの AccessControlContext は、そのあとにクラスおよびリソースをロードするときに使われます。 jar: URL および file: URL の場合は、それによって開かれたファイルもすべて閉じられます。close メソッドが呼び出されたときに別のスレッドがクラスをロード中である場合、そのロードの結果は未定義となります。
ClosedByInterruptException スレッドがチャネルでの入出力操作でブロックされているにもかかわらず、別のスレッドから割り込みを受けた場合に受信するチェック例外です。この例外がスローされる前に、チャネルはクローズされます。また、以前からブロックされているスレッドの割り込み状態の設定も完了します。
CollectionCertStoreParameters 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。 Collection で初期化された Collection CertStore のメソッドをあるスレッドが呼び出しているときに、その Collection が変更される場合、その Collection にはフェイルファストイテレータが必要です。..
Collections 指定されたコレクションに連動する同期 (スレッドセーフな) コレクションを返します。 指定されたリストに連動する同期 (スレッドセーフな) リストを返します。 指定されたマップに連動する同期 (スレッドセーフな) マップを返します。 指定されたセットに連動する同期 (スレッドセーフな) セットを返します。 指定されたソートマップに連動する同期 (スレッドセーフな) ソートマップを返します。 指定されたソートセットに連動する同期 (スレッドセーフな) ソートセットを返します。 指定されたコレクションに連動する同期 (スレッドセーフな) コレクションを返します。確実に直列アクセスを実現するには、基となるコレクションへのアクセスはすべて返されたコレクションを介して行う必要があります。 指定されたセットに連動する同期 (スレッドセーフな) セットを返します。確実に直列アクセスを実現するには、基となるセットへのアクセスはすべて返されたセットを介して行う必要があります。 指定されたソートセットに連動する同期 (スレッドセーフな) ソートセットを返します。確実に直列アクセスを実現するには、基となるソートセットへのアクセスは..
CompilationMXBean コンパイルにかかったおよその累積経過時間 (ミリ秒単位) を返します。コンパイルに複数のスレッドが使用されると、この値はコンパイルで各スレッドにかかったおよその時間の合計になります。
CompletionHandler このパッケージで定義された非同期チャネルによって、非同期操作の結果を消費する終了ハンドラを指定できます。入出力操作が正常に終了すると、completed メソッドが呼び出されます。入出力操作が失敗した場合は、failed メソッドが呼び出されます。呼び出し元スレッドがほかの終了ハンドラにディスパッチされ続けることが回避されるように、これらのメソッドの実装はタイムリーに終了する必要があります。..
Component AWT コンポーネントツリーおよびレイアウト操作に対する、このコンポーネントのロックオブジェクト (スレッド同期化モニターを所有するオブジェクト) を取得します。 このコンポーネント上にレンダリングするためのイメージを準備します。イメージデータは別のスレッドで非同期にダウンロードされ、イメージの適切な画面表現が生成されます。 イメージデータは別のスレッドで非同期にダウンロードされ、イメージの適切にスケーリングされた画面表現が生成されます。 AWT スレッドモデルの詳細は、「AWT のスレッドの問題」を参照してください。..
ComponentListener AWTEventMulticaster は、java.awt.event パッケージで定義された AWT イベントのための効率的で、スレッドセーフなマルチキャストイベントディスパッチを実装します。
ComponentView このクラス実装により、すべてのコンポーネントアクセスがイベントスレッド上で確実に行われ、複数スレッドが存在する場合でも (つまり、モデル変更の非同期通知からなど) 適切に動作する必要のある処理が追加で実行されます。 コンポーネントの階層の変更は、コンポーネントのロックに影響を与えることがあるため、View 階層に対して安全ではありません。したがって、この機能は、イベントスレッド上の場合にはただちに実行され、別のスレッドから呼び出された場合 (非同期の更新からの変更の通知の場合) はイベントキューに入れられます。..
CompositeContext CompositeContext インタフェースは、合成操作のためにカプセル化され、最適化された環境を定義します。CompositeContext オブジェクトは、合成操作用の状態を保持します。マルチスレッド環境では、1 つの Composite オブジェクトに対して同時に複数のコンテキストが存在する場合があります。
CompositeName マルチスレッドアクセス CompositeName インスタンスは、並行マルチスレッドアクセスに対しては同期化されません。複数のスレッドから CompositeName にアクセスして変更する場合は、オブジェクトをロックする必要があります。
CompoundName マルチスレッドアクセス CompoundName インスタンスは、並行マルチスレッドアクセスに対しては同期化されません。複数のスレッドから CompoundName にアクセスして変更する場合は、オブジェクトをロックする必要があります。
ConcurrentHashMap 取得の完全な同時性および予想される調整可能な更新平行性をサポートするハッシュテーブルです。このクラスは、Hashtable と同じ機能仕様に従い、Hashtable の各メソッドに対応するバージョンのメソッドを含みます。ただし、すべての操作がスレッドセーフである場合でも、取得操作にロックは含まれないため、テーブル全体がロックされてすべてのアクセスが拒否されることはありません。このクラスは、そのスレッドの安全性に依存するが、その同期の詳細には依存しないプログラムで Hashtable と完全に相互運用できます。 通常、取得操作 (get を含む) ではブロックは実行されないため、更新操作とオーバーラップする場合があります (put および remove を含む)。取得では、開始時に保持している更新操作のうち、最後に完了した更新操作の結果が反映されます。putAll や clear などの集計操作では、並行取得は一部のエントリの挿入または削除だけを反映する可能性があります。同様に、Iterator および Enumeration は、ある時点またはイテレータ/列挙の作成以降のハッシュテーブルの状態を反映する要素を..
ConcurrentLinkedDeque リンクノードに基づく、制限なしの並行両端キューです。挿入、削除、およびアクセスの並行オペレーションは、複数のスレッドにわたって安全に実行されます。共通のコレクションへのアクセスを多数のスレッドが共有する場合、ConcurrentLinkedDeque は選択肢として適切です。大半のコレクション実装と同様、このクラスは null 要素の使用を許容しません。 メモリー整合性効果: ほかの並行処理コレクションと同様、オブジェクトを ConcurrentLinkedDeque に配置する前のスレッド内のアクションは、別のスレッドでのその要素へのアクセスまたは ConcurrentLinkedDeque からの削除に続くアクションよりも前に発生します。..
ConcurrentLinkedQueue リンクノードに基づく、制限なしのスレッドセーフなキューです。このキューは FIFO (先入れ先出し) で要素を順序付けします。このキューの先頭は、キューに入っていた時間がもっとも長い要素です。このキューの末尾は、キューに入っていた時間がもっとも短い要素です。新しい要素はキューの末尾に挿入され、キュー取得オペレーションにより、キューの先頭の要素が取得されます。共通のコレクションへのアクセスを多数のスレッドが共有する場合、ConcurrentLinkedQueue は選択肢として適切です。大半のコレクション実装と同様、このクラスは null 要素の使用を許容しません。 メモリー整合性効果:ほかの並行処理コレクションと同様、オブジェクトを ConcurrentLinkedQueue に配置する前のスレッド内のアクションは、別のスレッドでのその要素へのアクセスまたは ConcurrentLinkedQueue からの削除に続くアクションよりも前に発生します。..
ConcurrentMap 取得の完全な同時性および予想される調整可能な更新平行性をサポートするハッシュテーブルです。このクラスは、Hashtable と同じ機能仕様に従い、Hashtable の各メソッドに対応するバージョンのメソッドを含みます。ただし、すべての操作がスレッドセーフである場合でも、取得操作にロックは含まれないため、テーブル全体がロックされてすべてのアクセスが拒否されることはありません。このクラスは、そのスレッドの安全性に依存するが、その同期の詳細には依存しないプログラムで Hashtable と完全に相互運用できます。 通常、取得操作 (get を含む) ではブロックは実行されないため、更新操作とオーバーラップする場合があります (put および remove を含む)。取得では、開始時に保持している更新操作のうち、最後に完了した更新操作の結果が反映されます。putAll や clear などの集計操作では、並行取得は一部のエントリの挿入または削除だけを反映する可能性があります。同様に、Iterator および Enumeration は、ある時点またはイテレータ/列挙の作成以降のハッシュテーブルの状態を反映する要素を..
ConcurrentModificationException たとえば、あるスレッドが Collection で繰り返し処理を行なっている間に、別のスレッドがその Collection を変更することは一般に許可されません。通常、そのような環境では、繰り返し処理の結果は保証されません。いくつかのイテレータ (Iterator) の実装 (JRE が提供するすべての一般的な目的のコレクションの実装の、イテレータの実装を含む) は、その動作が検出された場合にこの例外をスローすることを選択できます。この例外をスローするイテレータは、フェイルファストイテレータと呼ばれます。イテレータは、将来の予測できない時点において予測できない動作が発生する危険を回避するために、ただちにかつ手際よく例外をスローします。 この例外は、オブジェクトが別のスレッドによって並行して更新されていないことを必ずしも示しているわけではありません。単一のスレッドが、オブジェクトの規約に違反する一連のメソッドを発行した場合、オブジェクトはこの例外をスローします。たとえば、フェイルファストイテレータを持つコレクションの繰り返し処理を行いながら、スレッドがコレクションを直接修正する場合、イテレータはこの例外をスロー..
ConcurrentNavigableMap このクラスは、SkipLists の並行バリアントを実装して、containsKey、get、put、および remove オペレーションとそれらのバリアントに予想される平均 log(n) 時間コストを提供します。挿入、削除、更新、アクセスの各オペレーションは、複数のスレッドによって並行して、安全に実行されます。イテレータは弱一貫性を持ち、ある時点での、またはイテレータの作成以降のマップの状態を反映する要素を返します。これらは ConcurrentModificationException をスローせず、ほかのオペレーションとの並行処理が可能です。昇順のキーで並べられたビューとそのイテレータは、降順の場合よりも高速になります。..
ConcurrentSkipListMap このクラスは、SkipLists の並行バリアントを実装して、containsKey、get、put、および remove オペレーションとそれらのバリアントに予想される平均 log(n) 時間コストを提供します。挿入、削除、更新、アクセスの各オペレーションは、複数のスレッドによって並行して、安全に実行されます。イテレータは弱一貫性を持ち、ある時点での、またはイテレータの作成以降のマップの状態を反映する要素を返します。これらは ConcurrentModificationException をスローせず、ほかのオペレーションとの並行処理が可能です。昇順のキーで並べられたビューとそのイテレータは、降順の場合よりも高速になります。..
ConcurrentSkipListSet この実装は、contains、add、および remove オペレーションとそれらのバリアントに予想される平均 log(n) 時間コストを提供します。挿入、削除、アクセスの各オペレーションは、複数のスレッドによって並行して、安全に実行されます。イテレータは弱一貫性を持ち、ある時点での、またはイテレータの作成以降のセットの状態を反映する要素を返します。これらは ConcurrentModificationException をスローせず、ほかのオペレーションとの並行処理が可能です。昇順で並べられたビューとそのイテレータは、降順の場合よりも高速になります。..
Condition この Condition で待機している可能性のあるスレッドを含むコレクションを返します。 この状態で待機中のスレッドの推定数を返します。 この状態で待機中のスレッドが存在するかどうかを照会します。 もっとも長く待機しているスレッドが存在する場合、それをこの状態の待機キューから所有するロックの待機キューに移動します。 すべてのスレッドを、この状態の待機キューから所有するロックの待機キューに移動します。 もっとも長く待機しているスレッドが存在する場合、それをこの状態の待機キューから所有するロックの待機キューに移動します。 すべてのスレッドを、この状態の待機キューから所有するロックの待機キューに移動します。 現在のスレッドで割り込みが行われた場合は、InterruptedException をスローする。 InterruptedException - 現在のスレッドで割り込みが発生する (およびスレッド中断の割り込みがサポートされる) 場合 現在のスレッドで割り込みが行われた場合は、InterruptedException をスローする。 InterruptedException - 現在のスレッドで割り込みが発..
Configuration SecurityException - 現在のスレッドに Configuration を設定する権限がない場合。関連項目:getConfiguration()
Connection 現在接続にアクセスしているすべてのスレッドを続行して完了させるか、SQLException をスローさせる。 注:このメソッドは、ネットワークパーティションがソケット読み取りで OS TCP-TIMEOUT (一般に 10 分) まで JDBC 呼び出しを発行するスレッドを絶えずハングアップさせる、めったにないが深刻な状況に対処するためのものです。このメソッドは、JDBC 接続が管理者スレッドにアクセスできる場合に、管理者スレッドに、そのようなスレッドを解放する手段を提供する abort() メソッドに関連しています。setNetworkTimeout メソッドは、管理者スレッドがない場合や、接続にアクセスできない状況に対処します。このメソッドは、その効果が重大であるため、トランザクションタイムアウトなどの通常のタイムアウトの前にトリガーされないように、十分に大きな値を指定してください。..
Console 読み込みと書き込みの操作は同期されるため、クリティカルな操作を不可分 (atomic) に完了することができます。そのため、マルチスレッド化されたシナリオでは、readLine()、readPassword()、format()、printf() の各メソッドの呼び出しや、reader() および writer() で返されるオブジェクトでの読み込み、フォーマット、書き込みの操作がブロックすることがあります。
Container AWT スレッドモデルの詳細は、「AWT のスレッドの問題」を参照してください。
ContainerListener AWTEventMulticaster は、java.awt.event パッケージで定義された AWT イベントのための効率的で、スレッドセーフなマルチキャストイベントディスパッチを実装します。
CopyOnWriteArrayList 基になる配列の新しいコピーを作成することにより、すべての推移的操作 (add、set など) が実装される ArrayList のスレッドセーフな変数です。 通常、これは非常に効率が悪いのですが、トラバーサル操作が変更を数の点で大幅に上回る場合には、代替手段よりも効率が良い場合があります。また、これは、トラバーサルを同期できない場合や、同期することを望まないが、並行スレッド間の干渉を排除する必要がある場合に有用です。「スナップショット」スタイルのイテレータメソッドは、イテレータの作成時点での配列状態への参照を使用します。この配列がイテレータの有効期間中に変更されることは決してないため、干渉は不可能であり、イテレータは ConcurrentModificationException をスローしないことが保証されます。イテレータは、イテレータの作成以降のリストへの追加、削除、または変更を反映しません。イテレータ自体に対する要素変更操作 (remove、set、および add) はサポートされません。これらのメソッドは、UnsupportedOperationException をスローします。 メモリー整合性効果..
CopyOnWriteArraySet 設定サイズが通常小さく、読み取り専用操作が変更操作よりもはるかに多いアプリケーションに最適である。また、トラバーサル中にスレッド間の干渉を防ぐ必要がある。 スレッドセーフである。 イテレータを使用したトラバーサルは高速であり、ほかのスレッドからの干渉に遭遇することはない。イテレータは、その構築された時点での変更されない配列スナップショットに依存する。..
CountDownLatch ほかのスレッドで実行中の操作セットが完了するまで、1 つ以上のスレッドを待機可能にする同期化支援機能です。 CountDownLatch は、指定されたカウントで初期化されます。await メソッドは、countDown() メソッドの呼び出しによって現在のカウントがゼロに達するまでブロックします。その後、待機中のすべてのスレッドが解放され、以降の await のすべての呼び出しがただちに復帰します。これは単発的な現象であり、カウントをリセットすることはできません。カウントをリセットするバージョンが必要な場合は、CyclicBarrier の使用を検討してください。 CountDownLatch はさまざまな目的に使用できる柔軟性の高い同期ツールです。カウント 1 で初期化された CountDownLatch は、単純なオン/オフのラッチ、つまりゲートとして機能します。await を呼び出すスレッドはすべて、countDown() を呼び出すスレッドによって開かれるまでゲートで待機します。N に初期化された CountDownLatch を使用すると、N 個のスレッドが特定のアクションを完了するか、または特定..
CRLSelector 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
CubicCurve2D 形状の境界を定義する繰り返しオブジェクトを返します。このクラスのイテレータは、マルチスレッドに対して安全ではありません。つまりこのCubicCurve2D クラスでは、この CubicCurve2D オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。 平坦化された形状の境界を定義する繰り返しオブジェクトを返します。このクラスのイテレータは、マルチスレッドに対して安全ではありません。つまりこのCubicCurve2D クラスでは、この CubicCurve2D オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。..
Current Current インタフェースから派生したインタフェースです。ORB および CORBA サービスは、このインタフェースを使用して、稼働中の実行スレッドに関連する情報 (コンテキスト) へのアクセス機能を提供できます。この情報へのアクセスは、CORBA モジュールで定義された Current インタフェースから派生したインタフェースを使用して、構造化方式で行われます。
Current Current インタフェースから派生したインタフェースです。ORB および CORBA サービスは、このインタフェースを使用して、稼働中の実行スレッドに関連する情報 (コンテキスト) へのアクセス機能を提供できます。この情報へのアクセスは、CORBA モジュールで定義された Current インタフェースから派生したインタフェースを使用して、構造化方式で行われます。
Current Current インタフェースから派生したインタフェースです。ORB および CORBA サービスは、このインタフェースを使用して、稼働中の実行スレッドに関連する情報 (コンテキスト) へのアクセス機能を提供できます。この情報へのアクセスは、CORBA モジュールで定義された Current インタフェースから派生したインタフェースを使用して、構造化方式で行われます。
CyclicBarrier スレッドセットのそれぞれが共通のバリアーポイントに達するまで待機することを可能にする同期化支援機能です。CyclicBarrier は、相互に待機することが必要になることがある、固定サイズのスレッドパーティーが関係するプログラムで有用です。バリアーは、待機中のスレッドが解放されたあとに再利用できるため、cyclic (循環式) と呼ばれます。 CyclicBarrier は、オプションの Runnable コマンドをサポートします。これは、パーティー内の最後のスレッドが到着したあとで、スレッドが解放される前にバリアーポイントごとに 1 回実行されます。このバリアーアクションは、いずれかのパーティーが処理を続行する前に共有状態を更新するために役立ちます。 ここで、各ワークスレッドは行列の 1 行を処理して、すべての行が処理されるまでバリアーで待機します。すべての行が処理されると、指定された Runnable バリアーアクションが実行されて、行をマージします。処理結果が成功したとマージャーが判定すると、done() が true を返して、各ワーカーが終了します。 バリアーアクションがその実行時に、パーティーが中..
DatagramChannel データグラムチャネルは、複数の並行スレッドで安全に使用できます。データグラムチャネルは並行読み込みおよび書き込みをサポートします。ただし、読み込みを行うスレッドも書き込みを行うスレッドも特定の時点では常に 1 個以下です。 AsynchronousCloseException - 接続操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合 ClosedByInterruptException - 接続操作の進行中に別のスレッドからの割り込みがあったためにチャネルがクローズし、現在のスレッドの割り込みステータスが設定された場合 このメソッドはいつでも呼び出すことができます。ただし、ほかのスレッドがこのチャネルに対して読み込み操作を開始している場合、このメソッドの呼び出しは最初の操作が終わるまでブロックされます。このチャネルのソケットがバインドされていない場合は、このメソッドは bind メソッドを null のパラメータで呼び出した場合と同様に、最初にソケットを自動的に割り当てられるアドレスにバインドします。 AsynchronousCloseException - 読み取り操作の進行中に、別のス..
DatagramSocket このソケットの receive(java.net.DatagramPacket) で現在ブロックされているすべてのスレッドが SocketException をスローします。
DataHandler DataHandler がオブジェクトを使ってインスタンス化された場合、DataHandler はまずそのオブジェクトの DataContentHandler を捜し出そうとします。この MIME タイプの DataContentHandler が見つからない場合は、UnsupportedDataTypeException をスローします。見つかった場合は、パイプとスレッドを作成します。スレッドは DataContentHandler の writeTo メソッドを使って、ストリームデータをパイプの一端に書き込みます。パイプのもう一端は、呼び出し側に返されます。データをコピーするためにスレッドが作成されるため、コピー時に発生する IOException が呼び出し側に送り返されないことがあります。この場合は、空のストリームが返されます。..
DataInput DataInputStream は、マルチスレッドアクセスに対して必ずしも安全ではありません。スレッドの安全性はこのクラスのメソッドを使用するユーザーによってオプションで保証されます。
DataInputStream DataInputStream は、マルチスレッドアクセスに対して必ずしも安全ではありません。スレッドの安全性はこのクラスのメソッドを使用するユーザーによってオプションで保証されます。
DataInputStream DataInputStream は、マルチスレッドアクセスに対して必ずしも安全ではありません。スレッドの安全性はこのクラスのメソッドを使用するユーザーによってオプションで保証されます。
DataLine データの入出力をデータラインの内部バッファーが空になるまで継続して、そのラインからキューに入っているデータを排出します。このメソッドは排出が完了するまでブロックされます。これはブロッキングメソッドのため、注意して使用する必要があります。キュー内にデータがあるラインが停止している状態で drain() を呼び出すと、ラインが実行されてデータキューが空になるまでこのメソッドはブロックされます。drain() を 1 つのスレッドで呼び出し、別のスレッドでデータキューの格納を継続すると、操作は完了しません。このメソッドはデータラインが閉じると常に戻ります。..
DateFormat 日付フォーマットは同期化されません。スレッドごとに別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
DecimalFormat decimal フォーマットは同期化されません。スレッドごとに別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
DefaultCaret この実装は、非同期通知のソースが 2 つあることを前提とします。タイマースレッドは非同期にトリガーされ、これにより、キャレットは最新のバウンディングボックスにペイントし直されます。また、キャレットはドキュメントが更新されるたびに変更を追跡します。通常、ドキュメントの更新は、マウスイベントまたはキーボードイベントによるイベントディスパッチスレッドにおいて発生します。キャレットの動作は、ドキュメントの同期的な更新でも非同期的な更新でも、UpdatePolicy プロパティーによって制御されます。新しいキャレット位置の再ペイントは、必ずイベントスレッドに上で発生します。これは、modelToView の呼び出しがイベントスレッド上でのみ安全だからです。 キャレットの外観は、paint メソッドを実装し直すことでカスタマイズできます。paint メソッドを変更する場合には、damage メソッドも実装し直して、キャレットの描画に使われる領域を描画し直してください。キャレットは、Rectangle クラスを拡張しているため、キャレットが最後に描画されたバウンディングボックスを保持しています。これによって、キャレットが移..
DefaultMutableTreeNode このクラスはスレッドセーフではありません。複数のスレッドで DefaultMutableTreeNode (つまり、TreeNode のツリー) を使用する場合、ユーザー自身が同期を行う必要があります。慣例では、ツリーのルートノードで同期させます。
DefaultStyledDocument このメソッドはスレッドセーフですが、ほとんどの Swing メソッドは違います。詳細は、「How to Use Threads」を参照してください。
Deque この実装は synchronized されません。複数のスレッドが並行してリンクリストにアクセスし、それらのスレッドの少なくとも 1 つが構造的にリストを変更する場合には、外部で synchronized する必要があります。構造的な変更とは 1 つ以上の要素を追加または削除するすべての処理です。要素の値を変更するだけの処理は、構造的な変更ではありません。これは通常、リストを自然にカプセル化する一部のオブジェクトで synchronized することによって達成されます。..
Desktop SecurityException - セキュリティーマネージャーが存在する場合に、セキュリティーマネージャーの SecurityManager.checkRead(java.lang.String) メソッドがファイルへの読み取りアクセスを許可しない場合、または AWTPermission("showWindowWithoutWarningBanner") アクセス権を許可しない場合、または呼び出し側スレッドがサブプロセスの作成を許可されていない場合関連項目:AWTPermission SecurityException - セキュリティーマネージャーが存在する場合に、セキュリティーマネージャーの SecurityManager.checkRead(java.lang.String) メソッドがファイルへの読み取りアクセスを許可しない場合、または SecurityManager.checkWrite(java.lang.String) メソッドがファイルへの書き込みアクセスを許可しない場合、または AWTPermission("showWindowWithoutWarningBanner") アクセス権を許..
Dialog SecurityException - 呼び出し元スレッドに、次が指定されたモーダルダイアログを作成するためのアクセス権がない場合: modalityType導入されたバージョン: このメソッドがブロックされている間は、ほかのイベントはブロックされないようにツールキットで保証されるので、イベントディスパッチスレッドからこのメソッドを呼び出してもかまいません。 ダイアログがモーダルで、まだ表示されていない場合、hide または dispose の呼び出しによってダイアログが非表示になるまで、この呼び出しは戻りません。イベントディスパッチスレッドからモーダルダイアログを表示することができます。ツールキットでは、このメソッドを呼び出したスレッドがブロックされていても別のイベントポンプが実行されるためです。..
DirectoryManager DirectoryManager は、複数のスレッドによる並行アクセスでもセキュリティー上安全です。
DirectoryStream ディレクトリストリームは、非同期クローズ可能である必要はありません。ディレクトリからの読み取りを行なっているディレクトリストリームのイテレータで、あるスレッドがブロックされているときに、別のスレッドが close メソッドを呼び出した場合、2 つめのスレッドは読み取り操作が完了するまでブロックされる可能性があります。 イテレータは、弱一貫性を保持します。それはスレッドセーフですが、反復処理中にディレクトリをフリーズしないため、DirectoryStream の作成後に行われる更新がディレクトリに反映されることも反映されないこともあります。..
DirStateFactory DirStateFactory の getStateToBind() メソッドのどちらかの形式が、異なるパラメータを使って複数回呼び出されることがあります。実装はスレッドセーフです。 作成されるオブジェクトの名前を指定するために、必要に応じて name パラメータや nameCtx パラメータを使用できます。詳細は、ObjectFactory.getObjectInstance() にある「名前パラメータとコンテキストパラメータ」の説明を参照してください。コンテキスト実装はスレッドセーフであることが保証されないため、nameCtx を使用する場合、ファクトリはその使用を並行アクセスに対して同期化するようにします。..
Doc 複数のスレッドから Doc へのアクセス可能にする
DocPrintJob ドキュメントを指定されたジョブ属性で印刷します。このメソッドは、指定された印刷ジョブで一度だけ呼び出す必要があります。このメソッドを再度呼び出しても、新規ジョブがプリンタにスプールされることはありません。サービス実装は、サービス割り込みおよび復元のポリシーを定義します。印刷メソッドの復帰時に、異なるスレッドで印刷が非同期に発生したなどの理由で、印刷が完了していない場合があります。成功または失敗を監視するアプリケーションクライアントは、PrintJobListener を登録する必要があります。..
Document このクラスは、ドキュメントのロックメカニズムを実装します。これによって、複数の読み込みまたは 1 つの書き込みを扱えるようになり、複数の書き込みがあっても、ドキュメントのオブザーバ全員に以前の変更が通知されるまで、ドキュメントに別の変更を加えることができません。読み込みロックの取得および解放には、render メソッドを使います。書き込みロックは、ドキュメントを変更するメソッドによって取得され、そのメソッド呼び出しの間は保持されます。通知は、ドキュメントを変更するスレッド上で行われます。このスレッドは、通知の間はドキュメントへの完全な読み込みアクセス権を持っています。一方で、その他の書き込み側は、通知が完了するまではアクセスを許されません。通知は Beans イベント通知であり、すべてのリスナーが通知を受け取るまではほかの変更を許可しません。 このクラスからサブクラス化された任意のモデルで、BasicTextUI から派生した Look & Feel の実装を持つテキストコンポーネントと関連して使用されるものは、安全に非同期に更新されます。これは、ドキュメントのタイプが AbstractDocument の場..
Document このクラスは、ドキュメントのロックメカニズムを実装します。これによって、複数の読み込みまたは 1 つの書き込みを扱えるようになり、複数の書き込みがあっても、ドキュメントのオブザーバ全員に以前の変更が通知されるまで、ドキュメントに別の変更を加えることができません。読み込みロックの取得および解放には、render メソッドを使います。書き込みロックは、ドキュメントを変更するメソッドによって取得され、そのメソッド呼び出しの間は保持されます。通知は、ドキュメントを変更するスレッド上で行われます。このスレッドは、通知の間はドキュメントへの完全な読み込みアクセス権を持っています。一方で、その他の書き込み側は、通知が完了するまではアクセスを許されません。通知は Beans イベント通知であり、すべてのリスナーが通知を受け取るまではほかの変更を許可しません。 このクラスからサブクラス化された任意のモデルで、BasicTextUI から派生した Look & Feel の実装を持つテキストコンポーネントと関連して使用されるものは、安全に非同期に更新されます。これは、ドキュメントのタイプが AbstractDocument の場..
Ellipse2D この Ellipse2D の境界を定義する反復オブジェクトを返します。このクラスのイテレータは、マルチスレッドに対して安全です。つまりこの Ellipse2D クラスは、この Ellipse2D オブジェクトの幾何学的図形に対する変更が、幾何学的図形についてすでに進行中の反復処理に影響を与えないことを保証します。
Endpoint 着信要求をディスパッチするために使用されるスレッドをより強力に制御するため、Executor が端点に設定されることもあります。たとえば、ThreadPoolExecutor を作成し、端点にそれを登録することによって、特定のパラメータを持つスレッドプールを有効にすることができます。 この Endpoint が publish(Object) メソッドを使用して発行され、指定したサーバーコンテキストがそれ自身のスレッド処理動作を定義している場合、executor は無視されることがあります。..
EnumMap 大半のコレクション実装と同様、EnumMap は同期されません。複数のスレッドが並行して enum マップにアクセスし、それらのスレッドの少なくとも 1 つがマップを変更する場合には、外部で同期をとる必要があります。通常、これは、enum マップを自然にカプセル化するいくつかのオブジェクトで同期をとることによって達成されます。そのようなオブジェクトが存在しない場合は、Collections.synchronizedMap(java.util.Map<K, V>) メソッドを使用してマップを「ラップ」する必要があります。これは、偶発的な非同期アクセスを防ぐために、作成時に行うのが最適です。..
EnumSet 大半のコレクション実装と同様、EnumSet は同期されません。複数のスレッドが並行して enum セットにアクセスし、それらのスレッドの少なくとも 1 つがセットを変更する場合には、外部で同期をとる必要があります。通常、これは、enum セットを自然にカプセル化するいくつかのオブジェクトで同期をとることによって達成されます。そのようなオブジェクトが存在しない場合は、Collections.synchronizedSet(java.util.Set<T>) メソッドを使用してセットを「ラップ」する必要があります。これは、偶発的な非同期アクセスを防ぐために、作成時に行うのが最適です。..
EventContext イベントソースとターゲットの説明、およびこのインタフェースのメソッドでも適用できるリスナー登録/登録解除については、EventContext を参照してください。スレッド問題の詳細は、パッケージの説明を参照してください。
EventDirContext イベントソースとターゲットの説明、およびこのインタフェースのメソッドでも適用できるリスナー登録/登録解除については、EventContext を参照してください。スレッド問題の詳細は、パッケージの説明を参照してください。
EventListenerList このクラスが提供する主な利点は、リスナーがない場合には比較的安上がりで、イベントリスナーのリストを 1 つの場所で直列化して、正しく使用した場合にはある程度のマルチスレッドに対する安全性が提供されることです。
EventQueue イベントディスパッチ機能のスレッド問題については「AWT スレッドの問題」を参照してください。 呼び出し元スレッドに関連付けられた EventQueue によって現在ディスパッチされているイベントを返します。 タイムスタンプを含み、呼び出し元スレッドに関連付けられた EventQueue からディスパッチされた最新のイベントのタイムスタンプを返します。 呼び出し元スレッドが the current AWT EventQueue のディスパッチスレッドである場合は true を返します。 EventQueue からイベントを削除し、そのイベントを返します。このメソッドは、別のスレッドによってイベントが送信されるまでブロックされます。 InterruptedException - いずれかのスレッドがこのスレッドに割り込んだ場合 タイムスタンプを含み、呼び出し元スレッドに関連付けられた EventQueue からディスパッチされた最新のイベントのタイムスタンプを返します。タイムスタンプを持つイベントがディスパッチ中の場合、そのタイムスタンプが返されます。イベントがまったくディスパッチされていない場合、EventQ..
Executor 送信された Runnable タスクを実行するオブジェクトです。このインタフェースは、タスク送信を各タスクの実行方式 (スレッドの使用やスケジューリングの詳細などを含む) から分離する方法を提供します。通常、Executor は、明示的にスレッドを作成する代わりに使用されます。たとえば、タスクセットごとに new Thread(new(RunnableTask())).start() を呼び出す代わりに、次を使用できます。 ただし、Executor インタフェースでは、実行が非同期であることが厳密に求められるわけではありません。もっとも単純なケースでは、executor は、送信されたタスクを呼び出し側のスレッド内でただちに実行できます。 より一般的には、タスクは呼び出し側のスレッド以外のスレッドで実行されます。次に示す executor は、各タスク用の新規スレッドを生成します。 このパッケージで提供される Executor 実装は、より拡張性の高いインタフェースである ExecutorService を実装します。ThreadPoolExecutor クラスは、拡張可能なスレッドプール実装を提供します。E..
Executors 新しく作成されたスレッドを既知の状態に設定する ThreadFactory を作成して返すメソッド。 新規スレッドの作成に使用するデフォルトのスレッドファクトリを返します。 必要に応じ、新規スレッドを作成するスレッドプールを作成しますが、利用可能な場合には以前に構築されたスレッドを再利用します。 必要に応じ、新規スレッドを作成するスレッドプールを作成しますが、利用可能な場合には以前に構築されたスレッドを再利用します。また、必要に応じ、指定された ThreadFactory を使用して新規スレッドを作成します。 共有アンバウンド形式のキューなしで動作する、固定数のスレッドを再利用するスレッドプールを作成します。 共有アンバウンド形式のキューなしで動作する、固定数のスレッドを再利用するスレッドプールを作成します。必要に応じ、指定された ThreadFactory を使用して新規スレッドを作成します。 指定された遅延時間後、または周期的にコマンドの実行をスケジュールできる、スレッドプールを作成します。 アンバウンド形式のキューなしで動作する、単一のワーカースレッドを使用する executor を作成します。 アンバ..
ExtendedRequest 構成ファイルおよび対応する実装クラスは、呼び出し側スレッドのコンテキストクラスローダーからアクセスできる必要があります。 このメソッドは、構成ファイルから収集したクラス名のリストから、最初にロードおよびインスタンス化できた実装クラスのインスタンスを返します。このメソッドは、呼び出し側スレッドのコンテキストクラスローダーを使用して構成ファイルを検索し、実装クラスをロードします。..
FileChannel ファイルチャネルは、複数の並行スレッドで安全に使用できます。close メソッドは、Channel インタフェースの指定どおりにいつでも呼び出せます。チャネルの位置を使用する操作、またはファイルサイズを変更する可能性がある操作は、1 つずつ実行することになっています。前の操作の進行中に同じような操作を新しく開始しようとすると、最初の操作が終わるまで新しい操作はブロックされます。その他の操作、とりわけ明示的な位置を使用する操作は、前の操作と同時並行で実行できます。同時並行処理が行われるかどうかは基礎となる実装によって決まるため、未指定です。 AsynchronousCloseException - 読み取り操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合 ClosedByInterruptException - 読み取り操作の進行中に、別のスレッドからの割り込みがあったためにチャネルがクローズし、現在のスレッドの割り込みステータスが設定された場合 AsynchronousCloseException - 読み取り操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合 Close..
FileInputStream この入力ストリームのメソッドの次の呼び出しによって、ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数を返します。次の呼び出しは、同じスレッドの場合も別のスレッドの場合もあります。このような多数のバイトを 1 回で読み込んだりスキップしたりすることでブロックすることはありませんが、読み込むまたはスキップするバイト数が少なくなることがあります。..
FileLock ファイルロックは Java 仮想マシン全体のために保持されます。これらは、同一仮想マシン内の複数スレッドによるファイルへのアクセスを制御するのには適していません。 ファイルロックオブジェクトは、複数の並行スレッドで安全に使用できます。
FileLockInterruptionException ファイルロックの獲得を待機しているスレッドに対して別のスレッドから割り込みがあったときに受け取られるチェック例外です。この例外がスローされる前に、先にブロックされたスレッドの割り込み状態が設定されます。
Files ファイルを開き、そのファイルから読み取る入力ストリームを返します。そのストリームはバッファーに入れられないため、mark または reset メソッドをサポートしている必要はありません。ストリームは複数の並行スレッドからのアクセスに対して安全です。読み取りはファイルの最初から始まります。返されるストリームが非同期クローズ可能または割り込み可能、あるいはその両方かどうかは、ファイルシステムプロバイダによって大きく異なるため、未指定です。 ファイルを開くか作成して、そのファイルにバイトを書き込むために使用できる出力ストリームを返します。結果となるストリームはバッファーに入れられません。ストリームは複数の並行スレッドからのアクセスに対して安全です。返されるストリームが非同期クローズ可能または割り込み可能、あるいはその両方かどうかは、ファイルシステムプロバイダによって大きく異なるため、未指定です。 このメソッドは、入力ストリームからの読み取り (またはファイルへの書き込み) を無期限にブロックすることがあります。コピー中に入力ストリームが非同期クローズされたり、スレッドの割り込みが発生したりした場合の動作は、入力スト..
FileSystem ファイルシステムは、複数の並行スレッドで安全に使用できます。いつでも close メソッドを呼び出してファイルシステムを閉じることができますが、ファイルシステムが非同期クローズ可能であるかどうかはプロバイダ固有のものであるため、未指定です。つまり、あるスレッドがファイルシステム内のオブジェクトにアクセスしているときに、別のスレッドが close メソッドを呼び出した場合、最初の操作が完了するまでそのメソッドはブロックされる必要があることがあります。ファイルシステムを閉じると、ファイルシステムに関連付けられた開いているチャネル、監視サービス、およびその他のクローズ可能なオブジェクトがすべて閉じます。..
FileSystemProvider このクラス内のすべてのメソッドは、複数の並行スレッドで安全に使用できます。 パラメータ:path - 開くまたは作成するファイルのパスoptions - ファイルを開く方法を指定するオプションexecutor - スレッドプール、またはチャネルをデフォルトのスレッドプールに関連付ける場合は nullattrs - ファイルの作成時に原子的に設定されるファイル属性のオプションのリスト
FileSystems あるスレッドがインストールされているファイルシステムプロバイダのロードを開始しているときに、別のスレッドが同様にそれらのプロバイダのロードを試みるメソッドを呼び出した場合、最初のロードが完了するまでそのメソッドはブロックされます。
FilterInputStream この入力ストリームのメソッドの次の呼び出し側によって、ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数を返します。次の呼び出し側は、同じスレッドの場合も別のスレッドの場合もあります。このような多数のバイトを 1 回で読み込んだりスキップしたりすることでブロックすることはありませんが、読み込むまたはスキップするバイト数が少なくなることがあります。..
FlavorMap このスレッドの ClassLoader の、デフォルトの FlavorMap を返します。
FlavorTable このスレッドの ClassLoader の、デフォルトの FlavorMap を返します。
Flushable 読み込みと書き込みの操作は同期されるため、クリティカルな操作を不可分 (atomic) に完了することができます。そのため、マルチスレッド化されたシナリオでは、readLine()、readPassword()、format()、printf() の各メソッドの呼び出しや、reader() および writer() で返されるオブジェクトでの読み込み、フォーマット、書き込みの操作がブロックすることがあります。
FocusListener AWTEventMulticaster は、java.awt.event パッケージで定義された AWT イベントのための効率的で、スレッドセーフなマルチキャストイベントディスパッチを実装します。
FocusManager スレッドのコンテキストの呼び出しに対して、現在の KeyboardFocusManager インスタンスを返します。 スレッドのコンテキストの呼び出しに対して、現在の KeyboardFocusManager インスタンスを設定します。 スレッドのコンテキストの呼び出しに対して、現在の KeyboardFocusManager インスタンスを返します。 戻り値:このスレッドのコンテキストの KeyboardFocusManager関連項目:setCurrentManager(javax.swing.FocusManager) スレッドのコンテキストの呼び出しに対して、現在の KeyboardFocusManager インスタンスを設定します。null が指定された場合、現在の KeyboardFocusManager は DefaultKeyboardFocusManager の新しいインスタンスに置き換えられます。 SecurityManager がインストールされている場合、呼び出し側スレッドは現在の KeyboardFocusManager を置き換えるために AWTPermission "replac..
ForkJoinPool ForkJoinPool は、主に work-stealing を使用する点で、ほかの種類の ExecutorService とは異なります。プール内のすべてのスレッドが、ほかのアクティブなタスクによって作成されたサブタスクを見つけて実行しようとします (1 つも存在しない場合は、最終的に作業の待機がブロックされます)。これにより、ほとんどのタスクがほかのサブタスクを生成する場合の効率的な処理が可能になります (ほとんどの ForkJoinTask も同様です)。コンストラクタで asyncMode を true に設定する場合は、ForkJoinPool もまた、結合されることのないイベント形式のタスクでの使用に適している可能性があります。 ForkJoinPool は、デフォルトでは使用可能なプロセッサの数に等しい、特定のターゲット並列性レベルで構築されます。このプールは、一部のタスクがほかのタスクの結合を待機して停止している場合でも、内部ワーカースレッドを動的に追加、中断、または再開することによって、十分な数のアクティブな (または使用可能な) スレッドを維持しようとします。ただし、ブロックされた入出力..
ForkJoinPool.ForkJoinWorkerThreadFactory 新しい ForkJoinWorkerThread を作成するためのファクトリ。基本機能を拡張するか、または別のコンテキストでスレッドを初期化する ForkJoinWorkerThread サブクラスのために、ForkJoinWorkerThreadFactory を定義して使用する必要があります。 指定されたプール内で動作している新しいワーカースレッドを返します。 パラメータ:pool - このスレッドが機能しているプール
ForkJoinPool.ManagedBlocker ManagedBlocker は、2 つのメソッドを提供します。ブロックが必要でない場合、isReleasable メソッドは true を返す必要があります。block メソッドは、必要に応じて (おそらく、実際にブロックする前に内部的に isReleasable を呼び出して) 現在のスレッドをブロックします。これらのアクションは、ForkJoinPool.managedBlock(java.util.concurrent.ForkJoinPool.ManagedBlocker) を呼び出す任意のスレッドによって実行されます。この API 内の例外的なメソッドは、長時間ブロックする可能性のある (ただし、通常はない) シンクロナイザに対応しています。同様に、十分な並列性を確保するために追加のワーカーが必要になる可能性のある (ただし、通常はない) 場合のより効率的な内部処理も可能になります。この目的のために、isReleasable メソッドの実装は、繰り返しの呼び出しに対応している必要があります。 ロックまたは条件を待機しているスレッドなどの現在のスレッドを、可能な場合にブロックします。..
ForkJoinTask ForkJoinPool 内で実行する抽象基底クラスです。ForkJoinTask は、通常のスレッドよりはるかに軽量な、スレッドに似たエンティティーです。ある程度の使用制限を犠牲にして、ForkJoinPool 内の少ない数の実際のスレッドで、膨大な数のタスクやサブタスクをホストできます。 ForkJoinTask は、軽量な形式の Future です。ForkJoinTask の効率は、純粋な関数を計算するか、または純粋に切り離されたオブジェクトに対して動作するという、計算タスクとしてのその意図した使用方法が反映された (部分的に静的にしか強制できない) 一連の制限から得られます。主な調整メカニズムには、非同期実行を調整する fork() や、タスクの結果が計算されるまで処理を続行しない join() があります。計算は、synchronized メソッドまたはブロックを回避するべきであり、またほかのタスクの結合や、分岐/結合スケジューリングと連携するために通知される Phaser などのシンクロナイザの使用を除き、その他の同期のブロックを最小限に抑えるべきです。タスクもまた、入出力のブロックを実行するべ..
ForkJoinWorkerThread ForkJoinPool によって管理されるスレッドであり、ForkJoinTask を実行します。このクラスは、機能の追加のためにのみサブクラス化可能です。スケジューリングまたは実行を扱うオーバーライド可能なメソッドはありません。ただし、メインのタスク処理ループを囲む初期化および終了メソッドはオーバーライドできます。このようなサブクラスを作成する場合は、カスタムの ForkJoinPool.ForkJoinWorkerThreadFactory を指定し、それを ForkJoinPool で使用することも必要です。 このスレッドをホストしているプールを返します。 このスレッドのプール内でのインデックス番号を返します。 このワーカースレッドの終了に関連付けられているクリーンアップを実行します。 パラメータ:pool - このスレッドが機能しているプール このスレッドをホストしているプールを返します。 このスレッドのプール内でのインデックス番号を返します。戻り値の範囲は 0 から、これまでにプール内で作成されたスレッドの最大数 (引く 1) までです。このメソッドは、タスク単位ではなく、ワーカー単位にステータス..
Format フォーマットは同期化されません。スレッドごとに別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
Formattable マルチスレッドアクセスを実行する場合、Formattable は必ずしも安全ではありません。スレッドの安全性は、このインタフェースを拡張および実装するクラスによってオプションで保証されます。
Formatter マルチスレッドアクセスを実行する場合、フォーマッタは必ずしも安全ではありません。スレッドの安全性はこのクラスのメソッドを使用するユーザーによってオプションで保証されます。
Formatter マルチスレッドアクセスを実行する場合、フォーマッタは必ずしも安全ではありません。スレッドの安全性はこのクラスのメソッドを使用するユーザーによってオプションで保証されます。
FormView このメソッドは、フォームデータの送信を行います。送信を実行するためにスレッドが 1 つフォークされます。
Future ForkJoinPool 内で実行する抽象基底クラスです。ForkJoinTask は、通常のスレッドよりはるかに軽量な、スレッドに似たエンティティーです。ある程度の使用制限を犠牲にして、ForkJoinPool 内の少ない数の実際のスレッドで、膨大な数のタスクやサブタスクをホストできます。 ForkJoinTask は、軽量な形式の Future です。ForkJoinTask の効率は、純粋な関数を計算するか、または純粋に切り離されたオブジェクトに対して動作するという、計算タスクとしてのその意図した使用方法が反映された (部分的に静的にしか強制できない) 一連の制限から得られます。主な調整メカニズムには、非同期実行を調整する fork() や、タスクの結果が計算されるまで処理を続行しない join() があります。計算は、synchronized メソッドまたはブロックを回避するべきであり、またほかのタスクの結合や、分岐/結合スケジューリングと連携するために通知される Phaser などのシンクロナイザの使用を除き、その他の同期のブロックを最小限に抑えるべきです。タスクもまた、入出力のブロックを実行するべ..
FutureTask このタスクの実行の取り消しを試みます。タスクがすでに完了していた場合、すでに取り消されていた場合、またはその他の理由で取り消しできなかった場合、この試みは失敗します。その試みが成功し、cancel の呼び出し時にこのタスクが起動しなかった場合、このタスクが実行されることはありません。タスクが起動済みの場合は、このタスクの停止を試みる際、このタスクを実行しているスレッドに割り込む必要があるかどうかは、mayInterruptIfRunning パラメータで判断します。 パラメータ:mayInterruptIfRunning - このタスクを実行しているスレッドに割り込む必要がある場合は true、そうでない場合は、実行中のタスクを完了できる InterruptedException - 待機中に現在のスレッドで割り込みが発生した場合..
GatheringByteChannel ファイルチャネルは、複数の並行スレッドで安全に使用できます。close メソッドは、Channel インタフェースの指定どおりにいつでも呼び出せます。チャネルの位置を使用する操作、またはファイルサイズを変更する可能性がある操作は、1 つずつ実行することになっています。前の操作の進行中に同じような操作を新しく開始しようとすると、最初の操作が終わるまで新しい操作はブロックされます。その他の操作、とりわけ明示的な位置を使用する操作は、前の操作と同時並行で実行できます。同時並行処理が行われるかどうかは基礎となる実装によって決まるため、未指定です。 AsynchronousCloseException - 読み取り操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合 ClosedByInterruptException - 読み取り操作の進行中に、別のスレッドからの割り込みがあったためにチャネルがクローズし、現在のスレッドの割り込みステータスが設定された場合 AsynchronousCloseException - 読み取り操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合 Close..
GraphicsDevice このメソッドは、このデバイスの高速メモリーで使用できるバイト数を返します。一部のイメージは、先着順で作成されるかまたは高速メモリーにキャッシュされます。一部のオペレーティングシステムでは、このメモリーは有限のリソースです。このメソッドを呼び出し、イメージの作成とフラッシュをスケジューリングすることにより、アプリケーションがこの有限のリソースをもっとも効果的に使用できるようになります。返された値は、使用できるメモリー量のスナップショットです。一部のイメージは、そのメモリーに割り当てられることで問題が生じる場合があります。たとえば、オペレーティングシステム、ドライバ、メモリー構成、およびスレッドの状況によっては、指定されたイメージに対して報告された全体のサイズが使用できない場合があります。VolatileImage に関連する ImageCapabilities オブジェクト上にさらに照会を行うメソッドがあります。このメソッドは、高速メモリーに特定の VolatileImage が作成されているかどうかを判定するために使用できます。..
GSSContext セキュリティーコンテキストは通常、処理するトークンに関する順序付けとリプレイ検出情報を保持しています。このため、トークンがこのコンテキストに渡されて処理される順序が重要になります。また、このインタフェース内のメソッドは同期化されません。複数のスレッド間で GSSContext を共有するときは、なんらかのアプリケーションレベルの同期化を行う必要があります。..
HashMap この実装は同期化されません。複数のスレッドが並行してハッシュマップにアクセスし、それらのスレッドの少なくとも 1 つが構造的にマップを変更する場合には、外部で同期をとる必要があります。構造的な変更とは、1 つ以上のマッピングを追加または削除するオペレーションのことです。すでにインスタンスに格納されているキーに関連付けられた値を変更することは構造的な変更ではありません。これは通常、マップを自然にカプセル化する一部のオブジェクトで synchronized することによって達成されます。..
HashSet この実装は同期化されません。複数のスレッドが並行してハッシュセットにアクセスし、それらのスレッドの少なくとも 1 つがセットを変更する場合には、外部で同期をとる必要があります。通常、構造的な変更は、セットを自然にカプセル化する特定のオブジェクトで同期をとることによって達成されます。
Hashtable 新しいコレクションの実装とは異なり、Hashtable は同期をとります。スレッドセーフな実装が必要ない場合は、Hashtable の代わりに HashMap を使用することをお勧めします。スレッドセーフで高度な並列実装が必要な場合は、Hashtable の代わりに ConcurrentHashMap を使用することをお勧めします。
HierarchyBoundsListener AWTEventMulticaster は、java.awt.event パッケージで定義された AWT イベントのための効率的で、スレッドセーフなマルチキャストイベントディスパッチを実装します。
HierarchyListener AWTEventMulticaster は、java.awt.event パッケージで定義された AWT イベントのための効率的で、スレッドセーフなマルチキャストイベントディスパッチを実装します。
HTMLDocument このメソッドはスレッドセーフですが、ほとんどの Swing メソッドは違います。詳細は、「How to Use Threads」を参照してください。 指定した id Attribute を持つ要素を返します。要素が見つからない場合は null が返されます。このメソッドは Attribute に対して働き、文字タグに対しては働かないことに注意してください。HTML の簡単な例 <a id="HelloThere"> において、属性は「id」、文字タグは「a」です。これは getElement(RootElement, HTML.Attribute.id, id) の簡易メソッドです。このメソッドはスレッドに対して安全ではありません。 属性 (値 value を持つ attribute) を格納する e の子要素を返します。見つからない場合は null を返します。このメソッドはスレッドに対して安全ではありません。..
HTMLDocument.Iterator 特定のタイプのタグに対して繰り返し処理を実行するイテレータです。このイテレータは、スレッドに対して安全ではありません。ドキュメントに対する安全なアクセスが、イテレータを使用するコンテキストにおいて確保されていない状態では、Document.render の保護の下で使用するようにしてください。
HTMLEditorKit.HTMLTextAction 注:簡易メソッドは、ドキュメントのロックを取得しません。テキストを変更する別のスレッドがある場合、簡易メソッドは一貫性のない動作をするか、誤った内容を返す場合があります。
HTMLEditorKit.Parser 指定されたストリームの構文解析を行い、その解析結果に基づいて指定のコールバックを呼び出します。このメソッドは、スレッドに対して安全に実装する必要があります。
Identity このクラスは、アイデンティティーを表します。アイデンティティーは、人々、会社、組織などの実際の世界のオブジェクトで、そのアイデンティティーがその公開鍵を使用して認証できるものです。アイデンティティーはまた、デーモンスレッドやスマートカードのようなより抽象的、あるいはより具象的な構成概念であってもかまいません。
IdentityHashMap この実装は同期化されません。複数のスレッドが並行してアイデンティティーハッシュマップにアクセスし、それらのスレッドの少なくとも 1 つが構造的にマップを変更する場合には、外部で同期をとる必要があります。構造的な変更とは、1 つ以上のマッピングを追加または削除するオペレーションのことです。すでにインスタンスに格納されているキーに関連付けられた値を変更することは構造的な変更ではありません。これは通常、マップを自然にカプセル化する一部のオブジェクトで synchronized することによって達成されます。..
IllegalMonitorStateException 所定のモニターを持たないスレッドがオブジェクトのモニターで待つことを試みたこと、あるいはほかのスレッドが所定のモニターを持たずにオブジェクトのモニターで待つことを通知したことを示すためにスローされます。
IllegalThreadStateException 要求されたオペレーションに対してスレッドの状態が不適切であることを示すためにスローされます。たとえば、クラス Thread の suspend および resume メソッドを参照してください。
ImageObserver AWT コンポーネントツリーおよびレイアウト操作に対する、このコンポーネントのロックオブジェクト (スレッド同期化モニターを所有するオブジェクト) を取得します。 このコンポーネント上にレンダリングするためのイメージを準備します。イメージデータは別のスレッドで非同期にダウンロードされ、イメージの適切な画面表現が生成されます。 イメージデータは別のスレッドで非同期にダウンロードされ、イメージの適切にスケーリングされた画面表現が生成されます。 AWT スレッドモデルの詳細は、「AWT のスレッドの問題」を参照してください。..
InheritableThreadLocal このクラスは、親スレッドから子スレッドへの値の継承を提供するために、ThreadLocal を拡張します。子スレッドの作成時に、子は、親が値を保持する継承可能なスレッドローカル変数すべての初期値を受け取ります。通常、子の値は親の値と同じです。しかし、このクラスの childValue メソッドをオーバーライドすれば、子の値を親の値に対する任意の関数にできます。 変数として保持されるスレッドごとの属性 (ユーザー ID、トランザクション ID など) を、作成されるすべての子スレッドに自動的に転送する必要がある場合には、継承可能なスレッドローカル変数が通常のスレッドローカル変数よりも優先的に使われます。 この継承可能なスレッドローカル変数の初期値を、子スレッドの作成時に親の値に対する関数として計算します。 この継承可能なスレッドローカル変数の初期値を、子スレッドの作成時に親の値に対する関数として計算します。このメソッドは、子が開始される前に親スレッドの中から呼び出されます。 パラメータ:parentValue - 親のスレッドの値 戻り値:子のスレッドの初期値..
InitialContext InitialContext インスタンスは、並行アクセスに対して複数のスレッドでは同期化されません。異なる InitialContext インスタンスを操作する複数スレッドでは、同期化は必要ありません。単一の InitialContext に並行してアクセスする必要のあるスレッドは、それ自体で同期化され、必要なロックを提供する必要があります。
InitialLdapContext このメソッドは、マルチスレッドのアクセスのためにこのコンテキストインスタンスを新たに作成する便利な手法です。たとえば、複数のスレッドで個別のコンテキスト要求コントロールを使用する場合は、スレッドごとにこのメソッドを使用して、コンテキストの独自のコピーの取得、およびコンテキスト要求コントロールの設定と取得を行うことができます。このとき、ほかのスレッドと同期化する必要はありません。..
InputMethodListener AWTEventMulticaster は、java.awt.event パッケージで定義された AWT イベントのための効率的で、スレッドセーフなマルチキャストイベントディスパッチを実装します。
InputStream この入力ストリームのメソッドの次の呼び出しによって、ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数を返します。次の呼び出しは、同じスレッドの場合も別のスレッドの場合もあります。このような多数のバイトを 1 回で読み込んだりスキップしたりすることでブロックすることはありませんが、読み込むまたはスキップするバイト数が少なくなることがあります。..
InputStream この入力ストリームのメソッドの次の呼び出しによって、ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数を返します。次の呼び出しは、同じスレッドの場合も別のスレッドの場合もあります。このような多数のバイトを 1 回で読み込んだりスキップしたりすることでブロックすることはありませんが、読み込むまたはスキップするバイト数が少なくなることがあります。..
InputStream この入力ストリームのメソッドの次の呼び出しによって、ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数を返します。次の呼び出しは、同じスレッドの場合も別のスレッドの場合もあります。このような多数のバイトを 1 回で読み込んだりスキップしたりすることでブロックすることはありませんが、読み込むまたはスキップするバイト数が少なくなることがあります。..
Instrumentation 提供されたトランスフォーマの登録を解除します。登録解除されたトランスフォーマは、将来クラス定義を確認できなくなります。直前に追加された一致するトランスフォーマのインスタンスを削除します。クラスローディングのマルチスレッド的性質により、削除されたあとでもトランスフォーマを呼び出すことができます。このような状況を考慮して、慎重にトランスフォーマを記述する必要があります。..
InterruptedByTimeoutException 非同期操作が完了する前にタイムアウト時間が経過したときにスレッドが受け取るチェック例外です。
InterruptedException あるスレッドが待ち状態、休止状態、または占有されているとき、アクティビティーの前かその間のいずれかにそのスレッドで割り込みが発生した場合にスローされます。ただし、場合によっては、メソッドで、現在のスレッドで割り込みが発生したことがあるかどうかをテストすることもできます。これを実行する場合は、すぐにこの例外をスローします。次のコードを使用してこの効果を実現できます。..
InterruptedIOException 入出力処理で割り込みが発生したことを通知するシグナルを発生させます。入力転送または出力転送を実行するスレッドで割り込みがあり、転送が終了したことを示すために、InterruptedIOException がスローされます。bytesTransferred フィールドは、割り込みの発生前に転送に成功したバイト数を示します。
InterruptedNamingException この例外は、ネーミング操作の呼び出しが割り込まれた場合にスローされます。たとえば、検索を実行しているスレッドにアプリケーションが割り込むとします。検索で割り込みがサポートされている場合、InterruptedNamingException がスローされます。オペレーションが割り込み可能か、およびいつ割り込まれるかは、(サービスプロバイダで提供される) オペレーションの実装によります。予期しない割り込みによってリソースおよびオブジェクトがダメージを受けないように保護する方法は、実装によって異なります。..
InterruptibleChannel 具象チャネルクラスは、implCloseChannel メソッドも実装する必要があります。その場合、チャネルに対するネイティブの入出力操作の途中でブロックされているスレッドがあるときにこのメソッドが呼び出されると、例外をスローするか通常の方法でただちに終了するように実装します。スレッドに割り込みが発生した場合や、スレッドをブロックしているチャネルが非同期でクローズされた場合、チャネルの end メソッドは該当する例外をスローします。 このクラスは、Channel の仕様を実装するのに必要な同期処理を行います。implCloseChannel メソッドの実装では、チャネルをクローズしようとするほかのスレッドに対して同期処理を行う必要はありません。 このメソッドの実装は、このチャネルに対する入出力操作の途中でブロックされるその他のスレッドを、例外をスローするか、通常の方法を使ってただちに終了させることになっています。 ClosedByInterruptException - 入出力操作中にブロックされたスレッドに割り込みが発生した場合..
InvocationEvent AWT イベントディスパッチャースレッドによってディスパッチされたときに、Runnable 上で run() メソッドを実行するイベントです。このクラスは、新しいクラスを宣言して dispatch() を定義する代わりに、ActiveEvent の参照実装として使用できます。 イベントがディスパッチされるか、ディスパッチ中に例外がスローされた場合は、true を返し、それ以外の場合は false を返します。このメソッドは、notifier.wait() メソッドを呼び出す待機中スレッドによって呼び出すようにしてください。見せかけの復帰が可能なため (Object.wait() で説明)、イベントを確実にディスパッチするには、このメソッドを待機中ループで使用するようにしてください。 イベントをディスパッチせずに待機中スレッドが復帰すると、isDispatched() メソッドによって false が返され、while ループが再度実行されるため、復帰したスレッドが待機モードに戻ります。 待機中スレッドが notifier.wait() メソッドに入る前に notifier.notifyAll() が発生すると..
Invoker JAX-WS ランタイムはこのメソッドを呼び出すことで、端点インスタンスに WebServiceContext を注入するようコンテナに要求します。WebServiceContext オブジェクトは、要求に対応するために同時使用されているスレッドの数に関係なく、スレッドローカル情報を使用し、実際の端点の呼び出し中に正しい情報を返します。
ItemSelectable AWT スレッドモデルの詳細は、「AWT Threading Issues」を参照してください。
Iterable このクラスのインスタンスは、複数のスレッドで並行して使用することはできません。 指定されたサービスタイプの新しいサービスローダーを、現在のスレッドのコンテキストクラスローダーを使って作成します。
JApplet 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JAXBContext これは、newInstance(String,ClassLoader) メソッドを呼び出すための簡易メソッドです。現在のスレッドのコンテキストクラスローダーを使用します。
JButton 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JCheckBox 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JCheckBoxMenuItem 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JColorChooser 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JComboBox 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JComponent 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JDesktopPane 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JDialog 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。 SecurityException - 呼び出し元スレッドに、次が指定されたモーダルダイアログを作成するためのアクセス権がない場合: modalityType導入されたバージョン: 注: Java 仮想マシン (VM) 内で最後の表示可能なウィンドウが破棄されると、VM が終了することがあります。詳細は、「AWT スレッドの問題」を参照してください。..
JEditorPane 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。 このメソッドは、EditorKit によって返されるドキュメントに基づいて同期的または非同期的にロードを行います。Document が AbstractDocument 型で、AbstractDocument.getAsynchronousLoadPriority によって返されたゼロ以上の値を持つ場合、そのページはその優先順位により別々のスレッドでロードされます。 ドキュメントが非同期的にロードされる場合、ドキュメントプロパティー変更イベントをトリガーする setDocument を呼び出してドキュメントがただちにエディタにインストールされ、次に実際のロードを開始するスレッドが生成されます。この場合、ページプロパティー変更イベントはこのメソッドの呼び出しによって直接トリガーされることはなく、ロードを実行するスレッドが終了したときにトリガーされます。さらに、イベントディスパッチスレッドでもトリガーされます。呼び出し側のスレッドは、もう一方のスレッドでエラーが発生した場合に..
JFileChooser 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JFormattedTextField 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JFrame 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。 注: Java 仮想マシン (VM) 内で最後の表示可能なウィンドウが破棄されると、VM が終了することがあります。詳細は、「AWT スレッドの問題」を参照してください。
JInternalFrame 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JLabel 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JLayeredPane 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JList 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JMenu 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JMenuBar 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JMenuItem 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JMXConnector 接続の終了は、時間のかかるオペレーションです。たとえばサーバーがクラッシュした場合、終了オペレーションはネットワークプロトコルのタイムアウトまで中断される可能性があります。終了オペレーションの途中で待たされたくない場合は、別スレッドで実行してください。
JMXConnectorFactory environment パラメータ内に jmx.remote.protocol.provider.class.loader キーが含まれない場合、呼び出しスレッドのコンテンツクラスローダーが使用されます。 JMXConnectorProvider に渡された Map パラメータは、JMXConnectorFactory.newJMXConnector の environment パラメータ内にあったすべてのエントリを含む、新しい読み取り専用 Map になります。さらに、environment パラメータ内に jmx.remote.protocol.provider.class.loader キーが存在しない場合、新しい読み取り専用 Map に追加されます。呼び出しスレッドのコンテキストクラスローダーが値として関連付けられます。..
JMXConnectorServerFactory environment パラメータ内に jmx.remote.protocol.provider.class.loader キーが含まれない場合、呼び出しスレッドのコンテンツクラスローダーが使用されます。 JMXConnectorServerProvider に渡された Map パラメータは、JMXConnectorServerFactory.newJMXConnectorServer の environment パラメータ内にあったすべてのエントリを含む、新しい読み取り専用 Map になります。さらに、environment パラメータ内に jmx.remote.protocol.provider.class.loader キーが存在しない場合、新しい読み取り専用 Map に追加されます。呼び出しスレッドのコンテキストクラスローダーが値として関連付けられます。..
JobStateReasons JobStateReasons クラスは java.util.HashSet クラスから実装を継承します。一度構築されてしまうと変更されないことが多い通常の印刷属性とは異なり、JobStateReasons クラスは変更可能に設計されています。JobStateReason オブジェクトを既存の JobStateReasons オブジェクトに追加したり、再度削除したりすることができます。ただし、java.util.HashSet クラスと同じく、JobStateReasons クラスもマルチスレッドに対して安全ではありません。JobStateReasons オブジェクトがマルチスレッドで使用される場合、確実に操作を同期させてください。たとえば java.util.Collections クラスから取得された同期化セットビューを使って同期させることができます。..
Joinable 注: 複数のスレッドが createShared() メソッドによって作成された RowSet オブジェクトにアクセスする場合、共有データの整合性を確保するため、次の動作が指定されます。すべての共有された RowSet オブジェクトの読み取りと書き込みは、各オブジェクトと配下の単一の表構造間で逐次行われる必要があります。
JOptionPane 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JPanel 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JPasswordField 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JPopupMenu 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JProgressBar 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JRadioButton 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JRadioButtonMenuItem 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JRootPane 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JScrollBar 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JScrollPane 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JSeparator 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JSlider 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JSpinner 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JSplitPane 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JTabbedPane 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JTable 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。 SecurityException - 出力ジョブ要求の開始がこのスレッドに許可されていない場合 2 番目の boolean パラメータを使用すると、対話型モードで出力を実行するかどうかを指定できます。true の場合は、出力中に中止オプションの付いたモーダルな進捗ダイアログが表示されます。このダイアログでは、テーブルに影響を及ぼすユーザーアクションを防止することもできます。ただし、テーブルがコード (SwingUtilities.invokeLater を使用して更新内容を送る別のスレッドなど) によって変更されないようにすることはできません。このため、開発者は出力中にテーブルがほかのコードによって決して変更されないようにする必要があります (不正な変更には、サイズ、レンダリング、ベースとなるデータの変更がある)。出力中にテーブルが変更されると、出力動作は保証されません。 このパラメータを false に指定すると、ダイアログは表示されず、イベントディスパッチスレッドで..
JTextArea 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JTextComponent キャレットは、Swing テキストコンポーネント内のプラグイン可能なオブジェクトです。キャレット位置と選択領域の変更通知は、テキストコンポーネントに登録済みの CaretListener インタフェースの実装に送られます。UI は、カスタマイズしたキャレットが設定済みでないかぎりデフォルトのキャレットをインストールします。デフォルトでは、キャレットは、イベントディスパッチスレッド上でのすべてのドキュメントの変更を追跡し、キャレットの前 (キャレット位置) への挿入または削除が行われた場合は、それに従って位置を更新します。DefaultCaret は、自身を表示しようとします。このため、JScrollPane 内でテキストコンポーネントがスクロールされることがあります。キャレットのデフォルトの動作を変更するには、DefaultCaret.setUpdatePolicy(int) メソッドを使用します。注:編集不能なテキストコンポーネントはペイントされない場合もありますが、キャレットは存在します。 スレッドセーフ Swing テキストコンポーネントは特定のスレッドに対して安全な操作のサポートを提供します。テキスト..
JTextField 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JTextPane 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JToggleButton 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JToolBar 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JToolTip 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JTree 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JViewport 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
JWindow 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
KerberosTicket 注: このメソッドは、このオブジェクトのアクセス用メソッドと同期していません。したがって、呼び出し側は、このオブジェクトにアクセスし、更新を試みるスレッドが同時に複数存在する可能性がある点に注意する必要があります。
KeyboardFocusManager アクティブ Window が呼び出し側スレッドと同じコンテキストにある場合、アクティブ Window を返します。 現在のフォーカスサイクルのルートが呼び出し側スレッドと同じコンテキストにある場合、現在のフォーカスサイクルのルートを返します。 スレッドのコンテキストの呼び出しに対して、現在の KeyboardFocusManager インスタンスを返します。 フォーカスされた Window が、同じ呼び出し側スレッドと同じコンテキストにある場合、フォーカスされた Window を返します。 呼び出し側スレッドがアクティブ Window と異なるコンテキストにある場合でも、アクティブ Window を返します。 呼び出し側スレッドが現在のフォーカスサイクルのルートと異なるコンテキストにある場合でも、現在のフォーカスサイクルのルートを返します。 呼び出し側スレッドがフォーカスされた Window と異なるコンテキストにある場合でも、フォーカスされた Window を返します。 呼び出し側スレッドがフォーカスの所有者と異なるコンテキストにある場合でも、フォーカスの所有者を返します。 パーマネントフォーカスの所有者が..
KeyEventDispatcher アクティブ Window が呼び出し側スレッドと同じコンテキストにある場合、アクティブ Window を返します。 現在のフォーカスサイクルのルートが呼び出し側スレッドと同じコンテキストにある場合、現在のフォーカスサイクルのルートを返します。 スレッドのコンテキストの呼び出しに対して、現在の KeyboardFocusManager インスタンスを返します。 フォーカスされた Window が、同じ呼び出し側スレッドと同じコンテキストにある場合、フォーカスされた Window を返します。 呼び出し側スレッドがアクティブ Window と異なるコンテキストにある場合でも、アクティブ Window を返します。 呼び出し側スレッドが現在のフォーカスサイクルのルートと異なるコンテキストにある場合でも、現在のフォーカスサイクルのルートを返します。 呼び出し側スレッドがフォーカスされた Window と異なるコンテキストにある場合でも、フォーカスされた Window を返します。 呼び出し側スレッドがフォーカスの所有者と異なるコンテキストにある場合でも、フォーカスの所有者を返します。 パーマネントフォーカスの所有者が..
KeyEventPostProcessor アクティブ Window が呼び出し側スレッドと同じコンテキストにある場合、アクティブ Window を返します。 現在のフォーカスサイクルのルートが呼び出し側スレッドと同じコンテキストにある場合、現在のフォーカスサイクルのルートを返します。 スレッドのコンテキストの呼び出しに対して、現在の KeyboardFocusManager インスタンスを返します。 フォーカスされた Window が、同じ呼び出し側スレッドと同じコンテキストにある場合、フォーカスされた Window を返します。 呼び出し側スレッドがアクティブ Window と異なるコンテキストにある場合でも、アクティブ Window を返します。 呼び出し側スレッドが現在のフォーカスサイクルのルートと異なるコンテキストにある場合でも、現在のフォーカスサイクルのルートを返します。 呼び出し側スレッドがフォーカスされた Window と異なるコンテキストにある場合でも、フォーカスされた Window を返します。 呼び出し側スレッドがフォーカスの所有者と異なるコンテキストにある場合でも、フォーカスの所有者を返します。 パーマネントフォーカスの所有者が..
KeyInfoFactory このクラスの static メソッドは、スレッドセーフであることが保証されています。このクラスで定義されている static メソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。 しかしこのことは、このクラスで定義されている非 static メソッドには当てはまりません。特定のプロバイダで特に説明がないかぎり、単一の KeyInfoFactory インスタンスに並行してアクセスする必要のある複数スレッドは、スレッド間で同期を取り、必要に応じてロックしなければいけません。異なる KeyInfoFactory インスタンスを操作する複数スレッドは、同期化される必要はありません。..
KeyListener AWTEventMulticaster は、java.awt.event パッケージで定義された AWT イベントのための効率的で、スレッドセーフなマルチキャストイベントディスパッチを実装します。
LayoutQueue 実行する新しいタスクを取得するため、ワークスレッドによって使用されます。
LDAPCertStoreParameters 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
LdapContext このメソッドは、マルチスレッドのアクセスのためにこのコンテキストインスタンスを新たに作成する便利な手法です。たとえば、複数のスレッドで個別のコンテキスト要求コントロールを使用する場合は、スレッドごとにこのメソッドを使用して、コンテキストの独自のコピーの取得、およびコンテキスト要求コントロールの設定と取得を行うことができます。このとき、ほかのスレッドと同期化する必要はありません。..
LdapName LdapName のインスタンスに対する読み取り専用の同時マルチスレッドアクセスは、必ずしも同期させなくてもかまいません。
Line2D この Line2D の境界を定義する反復オブジェクトを返します。このクラスのイテレータは、マルチスレッドに対して安全ではありません。つまりこのLine2D クラスでは、この Line2D オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。 この平坦化された Line2D の境界を定義する反復オブジェクトを返します。このクラスのイテレータは、マルチスレッドに対して安全ではありません。つまりこのLine2D クラスでは、この Line2D オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。..
LinkedBlockingDeque remainingCapacity を調べても要素の挿入試行が成功するかどうかがわかるとはかぎりません。これは別のスレッドが要素を挿入または削除しようとしている可能性があるためです。
LinkedBlockingQueue remainingCapacity を調べても要素の挿入試行が成功するかどうかがわかるとはかぎりません。これは別のスレッドが要素を挿入または削除しようとしている可能性があるためです。
LinkedHashMap この実装は synchronized されません。複数のスレッドが並行してリンクハッシュマップにアクセスし、それらのスレッドの少なくとも 1 つが構造的にマップを変更する場合には、外部で synchronized する必要があります。これは通常、マップを自然にカプセル化する一部のオブジェクトで synchronized することによって達成されます。
LinkedHashSet この実装は synchronized されません。複数のスレッドが並行してリンクハッシュセットにアクセスし、それらのスレッドの少なくとも 1 つがセットを変更する場合には、外部で synchronized する必要があります。これは通常、セットを自然にカプセル化する一部のオブジェクトで synchronized することによって達成されます。
LinkedList この実装は synchronized されません。複数のスレッドが並行してリンクリストにアクセスし、それらのスレッドの少なくとも 1 つが構造的にリストを変更する場合には、外部で synchronized する必要があります。構造的な変更とは 1 つ以上の要素を追加または削除するすべての処理です。要素の値を変更するだけの処理は、構造的な変更ではありません。これは通常、リストを自然にカプセル化する一部のオブジェクトで synchronized することによって達成されます。..
LinkedTransferQueue メモリー整合性効果:ほかの並行処理コレクションと同様、オブジェクトを LinkedTransferQueue に配置する前のスレッド内のアクションは、別のスレッドでのその要素へのアクセスまたは LinkedTransferQueue からの削除に続くアクションよりも前に発生します。
LinkException LinkException インスタンスは、並行マルチスレッドアクセスに対して同期化されません。単一の LinkException インスタンスにアクセスして変更しようとする複数のスレッドによって、オブジェクトはロックされます。
LinkRef LinkRef インスタンスは、並行アクセスに対して複数のスレッドでは同期化されません。LinkRef インスタンスに並行してアクセスする必要のあるスレッドは、それ自体で同期化され、必要なロックを提供する必要があります。
Lock ReentrantLock は、最後にロックに成功したが、まだロック解除していないスレッドによって所有されます。ロックが別のスレッドに所有されていない場合、lock を呼び出すスレッドが復帰してロックの取得に成功します。現在のスレッドがロックをすでに所有している場合、メソッドはただちに復帰します。これは、isHeldByCurrentThread() メソッドと getHoldCount() メソッドを使用してチェックできます。 このクラスのコンストラクタは、オプションの公平性パラメータを受け入れます。true に設定されている場合は、競合が存在すると、ロックではもっとも長く待機しているスレッドにアクセスが許可されます。そうでない場合、このロックが特定のアクセス順を保証することはありません。多数のスレッドによりアクセスされる公平ロックを使用するプログラムは、デフォルト設定を使用するプログラムよりも低い (より低速な、多くの場合非常に低速な) 全体スループットを表示する場合がありますが、ロックを取得する際の変動はより小さくなり、枯渇しないことが保証されます。ただし、ロックの公平性により、スレッドスケジューリング..
LockInfo 所有可能なシンクロナイザとは、スレッドが排他的に所有可能なシンクロナイザであり、AbstractOwnableSynchronizer またはそのサブクラスを使用して同期プロパティーを実装します。
LockSupport ロックおよびほかの同期クラスを作成するための、基本的なスレッドブロックプリミティブです。 このクラスは、それを使用している各スレッドにパーミットを (Semaphore クラスという意味で) 関連付けます。パーミットが使用可能な場合、park の呼び出しはただちに復帰し、プロセス内でそのパーミットを消費します。それ以外の場合は、ブロックされる可能性があります。unpark の呼び出しによって、パーミットがまだ使用可能でなかった場合は使用可能になります。ただし、Semaphore とは異なり、パーミットでは累積は実行されず、最大で 1 つしか存在しません。 park メソッドと unpark メソッドは、非推奨メソッド Thread.suspend および Thread.resume をこのような目的に使用できなくなるような問題が発生しないスレッドをブロックおよびブロック解除するための効率的な手段を提供します。park を呼び出しているあるスレッドと、そのスレッドの unpark を試みている別のスレッドの間の競合は、パーミットのために活発な状態を保持します。さらに、呼び出し側のスレッドで割り込みが発生し、かつ..
Logger Logger のすべてのメソッドは、マルチスレッドセーフです。
LogManager LogManager オブジェクトのすべてのメソッドはマルチスレッドに対して安全です。
LogRecord クライアントアプリケーションが明示的なソースメソッド名とソースクラス名を指定しなかった場合、LogRecord クラスは、getSourceMethodName または getSourceClassName 呼び出し経由でそれらの名前が初めてアクセスされた時点で、呼び出しスタックを分析することでそれらの名前を自動的に推測することに注意してください。したがって、ロギング Handler は、LogRecord を別のスレッドに渡したり RMI 経由で送信したりしたあとでメソッド名やクラス名の情報を取得できるようにしたい場合は、getSourceClassName、getSourceMethodName のいずれかを呼び出すことで、値が強制的に設定されるようにすべきです。 メッセージの発生元のスレッドの識別子を返します。 メッセージの発生元のスレッドの識別子を設定します。 スレッド ID プロパティーは現在のスレッドに対する一意の ID で初期化されます。 メッセージの発生元のスレッドの識別子を返します。 これは Java VM 内のスレッド識別子であり、任意のオペレーティングシステム識別子にマッピングされる場合..
ManagementFactory Java 仮想マシンのスレッドシステムの管理ビーンを返します。
ManagementPermission Java 仮想マシンの実行時特性を管理する機能。 例、-verbose:gc と -verbose:class フラグの設定、メモリープールのしきい値の設定、スレッドコンテンション監視サポートの有効化または無効化など スレッドスタックトレース、ロードされたすべてのクラス名のリスト、Java 仮想マシンへの入力引数など、Java 仮想マシンに関する実行時情報を取得する機能
Matcher このクラスのインスタンスは、複数のスレッドで並行して使用することはできません。
MatchResult このクラスのインスタンスは、複数のスレッドで並行して使用することはできません。
Math このメソッドは、複数のスレッドが正しく使えるよう適切に同期されます。しかし、多数のスレッドで擬似乱数を高頻度で発生する必要がある場合は、スレッド独自の擬似乱数ジェネレータを用意して各スレッドのコンテンションを減らしてもかまいません。
MediaTracker InterruptedException - いずれかのスレッドがこのスレッドに割り込んだ場合関連項目:waitForID(int), waitForAll(long), isErrorAny(), isErrorID(int) InterruptedException - なんらかのスレッドがこのスレッドに割り込んだ場合。関連項目:waitForID(int), waitForAll(long), isErrorAny(), isErrorID(int) InterruptedException - なんらかのスレッドがこのスレッドに割り込んだ場合。関連項目:waitForAll(), isErrorAny(), isErrorID(int) InterruptedException - なんらかのスレッドがこのスレッドに割り込んだ場合。関連項目:waitForAll(), waitForID(int), statusID(int, boolean), isErrorAny(), isErrorID(int)..
MemoryMXBean Java 仮想マシンには、すべてのスレッド間で共有されるメソッド領域があります。メソッド領域は、ヒープ以外のメモリーに属します。非ヒープメモリーには、実行定数プール、フィールドおよびメソッドデータ、メソッドおよびコンストラクタのコードなど、クラス単位の構造体が格納されます。メソッド領域は、Java 仮想マシンの起動時に作成されます。
MemoryPoolMXBean アプリケーションでは、すべてのメモリープール共通の getUsage() メソッド、または使用量しきい値をサポートするメモリープール専用の isUsageThresholdExceeded() メソッドを呼び出すことにより、アプリケーション自体のメモリー使用量を継続的に監視できます。次に、タスクの配分と処理に特化したスレッドを持つサンプルコードの例を示します。このサンプルコードは、どの区間でもメモリー使用量に基づいて新しいタスクを受け入れて処理するかどうかを判定します。メモリー使用量が使用量しきい値を超えた場合、このサンプルコードはすべての未処理のタスクをほかの仮想マシンに再配分し、メモリー使用量が使用量しきい値以下に戻るまで新しいタスクの受け入れを停止します。 次のサンプルコードは、前述の最初のサンプルコードと同じロジックを実装していますが、ポーリングではなく、使用量しきい値通知メカニズムを使ってメモリー不足条件を検出しています。このサンプルコードでは、通知の受け取りにより、通知リスナーは未処理タスクの再配分、タスクの受け取りの停止、あるいは受け取りタスクの再開などの実際のアクションを実行するよう別のスレッ..
MenuComponent AWT コンポーネントツリーおよび配置操作に対する、このコンポーネントのロックオブジェクト (スレッド同期化モニターを所有するオブジェクト) を取得します。
MenuContainer AWT コンポーネントツリーおよびレイアウト操作に対する、このコンポーネントのロックオブジェクト (スレッド同期化モニターを所有するオブジェクト) を取得します。 このコンポーネント上にレンダリングするためのイメージを準備します。イメージデータは別のスレッドで非同期にダウンロードされ、イメージの適切な画面表現が生成されます。 イメージデータは別のスレッドで非同期にダウンロードされ、イメージの適切にスケーリングされた画面表現が生成されます。 AWT スレッドモデルの詳細は、「AWT のスレッドの問題」を参照してください。..
MenuElement 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
MenuItem AWT スレッドモデルの詳細は、「AWT スレッドの問題」を参照してください。
MessageFormat メッセージフォーマットは同期化されません。スレッドごとに別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
ModificationItem ModificationItem インスタンスは、並行マルチスレッドアクセスに対して同期化されません。複数のスレッドが同じ ModificationItem インスタンスにアクセスして変更しようとすると、オブジェクトはロックされます。
MouseListener AWTEventMulticaster は、java.awt.event パッケージで定義された AWT イベントのための効率的で、スレッドセーフなマルチキャストイベントディスパッチを実装します。
MouseMotionListener AWTEventMulticaster は、java.awt.event パッケージで定義された AWT イベントのための効率的で、スレッドセーフなマルチキャストイベントディスパッチを実装します。
MouseWheelListener AWTEventMulticaster は、java.awt.event パッケージで定義された AWT イベントのための効率的で、スレッドセーフなマルチキャストイベントディスパッチを実装します。
MulticastChannel データグラムチャネルは、複数の並行スレッドで安全に使用できます。データグラムチャネルは並行読み込みおよび書き込みをサポートします。ただし、読み込みを行うスレッドも書き込みを行うスレッドも特定の時点では常に 1 個以下です。 AsynchronousCloseException - 接続操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合 ClosedByInterruptException - 接続操作の進行中に別のスレッドからの割り込みがあったためにチャネルがクローズし、現在のスレッドの割り込みステータスが設定された場合 このメソッドはいつでも呼び出すことができます。ただし、ほかのスレッドがこのチャネルに対して読み込み操作を開始している場合、このメソッドの呼び出しは最初の操作が終わるまでブロックされます。このチャネルのソケットがバインドされていない場合は、このメソッドは bind メソッドを null のパラメータで呼び出した場合と同様に、最初にソケットを自動的に割り当てられるアドレスにバインドします。 AsynchronousCloseException - 読み取り操作の進行中に、別のス..
MultiDoc 1 つの multidoc に同時にアクセス可能なクライアントスレッドの数に制限はありません。このため、MultiDoc インタフェースの実装はすべて、複数のスレッドに対して安全に設計する必要があります。実際、Print Job スレッドが (概念上の) リストの先頭から doc を取得中に、クライアントスレッドがリストの最後に doc を追加することがあり得ます。 multidoc オブジェクトが複数のスレッドを適正に同期させることができるなら、2 つのスレッドが相互に干渉することはありません。..
MutableCallSite ターゲット値の非同期: 可変コールサイトのターゲットに書き込んでも、ほかのスレッドがその更新された値を認識するようにはなりません。更新されたコールサイトに関する適切な同期アクションを実行しないスレッドは、古いターゲット値をキャッシュに入れ、新しいターゲット値の使用を無期限に遅らせる可能性があります。(これは、オブジェクトフィールドに適用される Java メモリーモデルの通常の結果です。) syncAll 操作は、ほかの同期が存在していなくてもスレッドが新しいターゲット値を受け入れるように強制するための手段を提供します。 指定された配列内のコールサイトごとに同期処理を実行しますが、その際、いずれかのコールサイトのターゲットから以前にロードされたキャッシュ値をすべて破棄することを、ほかのすべてのスレッドに対して強制します。 特に、現在のスレッドは、以前のメモリーからのターゲットの読み取り結果を再利用することを選択する可能性があり、別のスレッドによるターゲットへの最新の更新を認識できない可能性があります。 特に、無関係のスレッドは、メモリーからの読み取りを実行するまで、更新されたターゲットを認識できない可能性があり..
MutableTreeNode このクラスはスレッドセーフではありません。複数のスレッドで DefaultMutableTreeNode (つまり、TreeNode のツリー) を使用する場合、ユーザー自身が同期を行う必要があります。慣例では、ツリーのルートノードで同期させます。
MXBean データのコレクションを表現するだけのクラスは、通常、不変にしておくことをお勧めします。不変クラスのインスタンスは、構築後に変更することはできません。CompositeData 自体は不変であることに留意してください。不変であることには多数の利点があります。特にスレッドの安全性やセキュリティー面で大きなメリットがあります。このため、setter の使用は、可能な場合は避けるようにしてください。..
Name マルチスレッドアクセス CompositeName インスタンスは、並行マルチスレッドアクセスに対しては同期化されません。複数のスレッドから CompositeName にアクセスして変更する場合は、オブジェクトをロックする必要があります。
Name マルチスレッドアクセス CompositeName インスタンスは、並行マルチスレッドアクセスに対しては同期化されません。複数のスレッドから CompositeName にアクセスして変更する場合は、オブジェクトをロックする必要があります。
Name マルチスレッドアクセス CompositeName インスタンスは、並行マルチスレッドアクセスに対しては同期化されません。複数のスレッドから CompositeName にアクセスして変更する場合は、オブジェクトをロックする必要があります。
NameClassPair NameClassPair インスタンスは、並行アクセスに対して複数のスレッドでは同期化されません。NameClassPair に並行してアクセスする必要のあるスレッドは、それ自体で同期化され、必要なロックを提供する必要があります。
NamingEvent 複数のスレッドが同時に同じ EventContext にアクセスしている場合は注意が必要です。スレッドの問題の詳細は、「パッケージの説明」を参照してください。 このメソッドの結果を使用してイベントソースにアクセスした場合、たとえばオブジェクトを参照したり属性を取得する場合、Context の実装がスレッドセーフではない (また EventContext が Context のサブインタフェースである) ため、ロックが必要です。スレッドの問題の詳細は、「パッケージの説明」を参照してください。 リスナーメソッドは、このメソッドと同じスレッドで実行されます。スレッドの問題の詳細は、「パッケージの説明」を参照してください。..
NamingException NamingException インスタンスは、並行マルチスレッドアクセスに対して同期化されません。単一の NamingException インスタンスにアクセスして変更しようとする複数のスレッドによって、オブジェクトはロックされます。
NamingManager NamingManager は、複数のスレッドによる並行アクセスに対して安全です。 ビルダーをインストールできるのは、セキュリティーマネージャーの checkSetFactory() メソッドが実行中のスレッドにインストールを許可した場合に限ります。一度インストールすると、ビルダーを置き換えることはできません。 ビルダーをインストールできるのは、実行中のスレッドにセキュリティーマネージャーがインストールを許可した場合に限ります。一度インストールすると、ビルダーを置き換えることはできません。..
NavigableMap この実装は synchronized されません。複数のスレッドが並行してマップにアクセスし、それらのスレッドの少なくとも 1 つが構造的にマップを変更する場合には、外部で同期をとる必要があります。構造的な変更とは、1 つ以上のマッピングを追加または削除するようなオペレーションです。既存のキーに関連付けられている値を変更する処理は、構造的な変更ではありません。これは通常、マップを自然にカプセル化する一部のオブジェクトで synchronized することによって達成されます。そのようなオブジェクトが存在しない場合は、Collections.synchronizedSortedMap メソッドを使用してマップを「ラップ」することをお勧めします。マップが誤って synchronized なしでアクセスされるのを防ぐために、作成時に行うことをお勧めします。..
NavigableSet この実装は、contains、add、および remove オペレーションとそれらのバリアントに予想される平均 log(n) 時間コストを提供します。挿入、削除、アクセスの各オペレーションは、複数のスレッドによって並行して、安全に実行されます。イテレータは弱一貫性を持ち、ある時点での、またはイテレータの作成以降のセットの状態を反映する要素を返します。これらは ConcurrentModificationException をスローせず、ほかのオペレーションとの並行処理が可能です。昇順で並べられたビューとそのイテレータは、降順の場合よりも高速になります。..
NetworkChannel サーバーソケットチャネルは、複数の並行スレッドで安全に使用できます。 AsynchronousCloseException - 受け付け操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合 ClosedByInterruptException - 受け付け操作の進行中に、現在のスレッドに対して別のスレッドから割り込みがあったためにチャネルがクローズし、現在のスレッドの割り込みステータスが設定された場合
NotificationBroadcaster このインタフェースの実装は、フィルタやリスナーのメソッドが呼び出されるスレッドにより異なることがあります。
NotificationBroadcasterSupport デフォルトでは、通知ディスパッチモデルは同期的です。つまり、スレッドが sendNotification を呼び出すと、そのスレッド内で各リスナーの NotificationListener.handleNotification メソッドが呼び出されます。このデフォルトをオーバーライドするには、サブクラス内で handleNotification をオーバーライドするか、Executor をコンストラクタに渡します。 NotificationBroadcasterSupport を構築します。ここで、各リスナーは通知を送信するスレッドにより呼び出されます。 NotificationBroadcasterSupport を構築します。ここで、各リスナーは通知を送信するスレッドにより呼び出されます。このコンストラクタは NotificationBroadcasterSupport(null, null) と同等です。 NotificationBroadcasterSupport を構築します。ここで、各リスナーは指定した Executor を使って呼び出されます。null の NotificationFilter..
NumberFormat 数値フォーマットは同期化されません。スレッドごとに別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
Object このオブジェクトのモニターで待機中のスレッドを 1 つ再開します。 このオブジェクトのモニターで待機中のすべてのスレッドを再開します。 別のスレッドがこのオブジェクトの notify() メソッドまたは notifyAll() メソッドを呼び出すまで、現在のスレッドを待機させます。 別のスレッドがこのオブジェクトの notify() メソッドまたは notifyAll() メソッドを呼び出すか、指定された時間が経過するまで、現在のスレッドを待機させます。 別のスレッドがこのオブジェクトの notify() メソッドまたは notifyAll() メソッドを呼び出すか、ほかのスレッドが現在のスレッドに割り込みをかけたり、指定された量の実時間が経過するまで、現在のスレッドを待機させます。 このオブジェクトのモニターで待機中のスレッドを 1 つ再開します。このオブジェクトで複数のスレッドが待機中の場合は、そのうちの 1 つを再開します。この選択は任意で、実装によって異なります。スレッドは、wait メソッドを呼び出すと、オブジェクトのモニターで待機します。 再開されたスレッドの処理は、現在のスレッドがこのオブジェク..
Object このオブジェクトのモニターで待機中のスレッドを 1 つ再開します。 このオブジェクトのモニターで待機中のすべてのスレッドを再開します。 別のスレッドがこのオブジェクトの notify() メソッドまたは notifyAll() メソッドを呼び出すまで、現在のスレッドを待機させます。 別のスレッドがこのオブジェクトの notify() メソッドまたは notifyAll() メソッドを呼び出すか、指定された時間が経過するまで、現在のスレッドを待機させます。 別のスレッドがこのオブジェクトの notify() メソッドまたは notifyAll() メソッドを呼び出すか、ほかのスレッドが現在のスレッドに割り込みをかけたり、指定された量の実時間が経過するまで、現在のスレッドを待機させます。 このオブジェクトのモニターで待機中のスレッドを 1 つ再開します。このオブジェクトで複数のスレッドが待機中の場合は、そのうちの 1 つを再開します。この選択は任意で、実装によって異なります。スレッドは、wait メソッドを呼び出すと、オブジェクトのモニターで待機します。 再開されたスレッドの処理は、現在のスレッドがこのオブジェク..
ObjectFactory オブジェクトファクトリの getObjectInstance() メソッドは、異なるパラメータを使って複数回呼び出されることがあります。実装はスレッドセーフです。 作成されるオブジェクトの名前を指定するために、必要に応じて name パラメータや nameCtx パラメータを使用できます。name は、コンテキスト nameCtx を基準にした、オブジェクトの名前です。オブジェクトを命名できるコンテキストが複数あることもありますが、その場合は呼び出し側が選択します。適切な経験則として、使用可能な「もっとも深い」コンテキストを選択することをお勧めします。nameCtx が null の場合、name はデフォルトの初期コンテキストを基準にしています。名前を指定しない場合は、name パラメータを null にします。コンテキスト実装はスレッドセーフであることが保証されないため、nameCtx を使用する場合、ファクトリはその使用を並行アクセスに対して同期化するようにします。..
ObjectInput loader は、次のように決定されます。メソッドの宣言クラスがユーザー定義のクラスローダーによって定義されていて、リフレクトによる呼び出しの実装を目的に生成されていない場合、そのメソッドが現在のスレッドのスタック上に存在すると、loader は現在実行中のフレームにもっとも近いメソッドに対応するクラスローダーになります。そうでない場合、loader は null です。この呼び出しの結果が ClassNotFoundException で、渡された ObjectStreamClass インスタンスの名前がプリミティブ型または void に対する Java 言語のキーワードである場合は、そのプリミティブ型または void を表す Class オブジェクトが返されます。たとえば、"int" という名前の ObjectStreamClass は Integer.TYPE に解決されます。そうでない場合は、このメソッドの呼び出し側に ClassNotFoundException がスローされます。..
ObjectInputStream loader は、次のように決定されます。メソッドの宣言クラスがユーザー定義のクラスローダーによって定義されていて、リフレクトによる呼び出しの実装を目的に生成されていない場合、そのメソッドが現在のスレッドのスタック上に存在すると、loader は現在実行中のフレームにもっとも近いメソッドに対応するクラスローダーになります。そうでない場合、loader は null です。この呼び出しの結果が ClassNotFoundException で、渡された ObjectStreamClass インスタンスの名前がプリミティブ型または void に対する Java 言語のキーワードである場合は、そのプリミティブ型または void を表す Class オブジェクトが返されます。たとえば、"int" という名前の ObjectStreamClass は Integer.TYPE に解決されます。そうでない場合は、このメソッドの呼び出し側に ClassNotFoundException がスローされます。..
ObjectStreamConstants loader は、次のように決定されます。メソッドの宣言クラスがユーザー定義のクラスローダーによって定義されていて、リフレクトによる呼び出しの実装を目的に生成されていない場合、そのメソッドが現在のスレッドのスタック上に存在すると、loader は現在実行中のフレームにもっとも近いメソッドに対応するクラスローダーになります。そうでない場合、loader は null です。この呼び出しの結果が ClassNotFoundException で、渡された ObjectStreamClass インスタンスの名前がプリミティブ型または void に対する Java 言語のキーワードである場合は、そのプリミティブ型または void を表す Class オブジェクトが返されます。たとえば、"int" という名前の ObjectStreamClass は Integer.TYPE に解決されます。そうでない場合は、このメソッドの呼び出し側に ClassNotFoundException がスローされます。..
Observable 通知が配信される順序は未指定です。Observable クラスで提供されるデフォルト実装が Observer に通知する順序は、Observer が登録した重要度に基づきますが、サブクラスは必要に応じてこの順序を変更したり、未保証の順序を使用したり、スレッドごとに通知を配信したり、サブクラスがこの順序に従うことを保証したりできます。 この通知メカニズムはスレッドとは無関係であり、Object クラスの wait および notify メカニズムからは完全に独立しています。..
Oneway 指定された @WebMethod には入力メッセージだけがあり、出力はないことを示します。通常、一方向メソッドは、実際のビジネスメソッドを実行する前に、呼び出し側アプリケーションに制御スレッドを返します。@Oneway とマークされた処理が戻り値や Holder パラメータを持っている場合や、チェック例外を宣言している場合は、181 プロセッサはエラーを報告するべきです。
OptionChecker このインタフェースのオブジェクトは、マルチスレッドアクセスをサポートしていなくてもかまいません。つまり、同期化は必要ありません。ただし、このオブジェクトによって作成された複数のファイルオブジェクトへの並行アクセスはサポートしている必要があります。
ORB メインスレッドから呼び出されると、実装に依存する処理単位を実行します。 この操作は、ORB がシャットダウンプロセスを完了するまで現行のスレッドをブロックし、あるスレッドが shutdown を呼び出すと起動します。 ORB が処理を実行するためにメインスレッドを必要とする場合は true、メインスレッドを必要としない場合は false を返します。 シャットダウンされていない ORB で destroy が呼び出されると、シャットダウンプロセスが起動し、ORB がシャットダウンするまでブロックしてから、ORB を破棄します。現在呼び出しを処理しているスレッドでアプリケーションが destroy を呼び出すと、ブロックによりデッドロックとなるため、OMG マイナーコード 3 で BAD_INV_ORDER システム例外がスローされます。 BAD_INV_ORDER - 現在のスレッドが呼び出しを処理している場合 Current オブジェクトを取り出します。Current インタフェースは、トランザクションやセキュリティーなどのサービスで使用するスレッド固有の情報を管理するために使います。 この操作は、ORB ..
ORB メインスレッドから呼び出されると、実装に依存する処理単位を実行します。 この操作は、ORB がシャットダウンプロセスを完了するまで現行のスレッドをブロックし、あるスレッドが shutdown を呼び出すと起動します。 ORB が処理を実行するためにメインスレッドを必要とする場合は true、メインスレッドを必要としない場合は false を返します。 シャットダウンされていない ORB で destroy が呼び出されると、シャットダウンプロセスが起動し、ORB がシャットダウンするまでブロックしてから、ORB を破棄します。現在呼び出しを処理しているスレッドでアプリケーションが destroy を呼び出すと、ブロックによりデッドロックとなるため、OMG マイナーコード 3 で BAD_INV_ORDER システム例外がスローされます。 BAD_INV_ORDER - 現在のスレッドが呼び出しを処理している場合 Current オブジェクトを取り出します。Current インタフェースは、トランザクションやセキュリティーなどのサービスで使用するスレッド固有の情報を管理するために使います。 この操作は、ORB ..
OverlappingFileLockException ロックを獲得しようとしたファイル領域が、すでに同じ Java 仮想マシンによってロックされている領域にオーバーラップしている場合、またはその他のスレッドが同じファイルのオーバーラップしている領域をロックしようと待機している場合にスローされる非チェック例外です。
Pack200 注:返されるオブジェクトを複数スレッドが同時に使用する場合、そのオブジェクトが適正に動作することは保証されません。マルチスレッドのアプリケーションは、複数の packer エンジンを割り当てるか、ロックを持つ 1 つのエンジンの使用を直列化する必要があります。 注:返されるオブジェクトを複数スレッドが同時に使用する場合、そのオブジェクトが適正に動作することは保証されません。マルチスレッドのアプリケーションは、複数の unpacker エンジンを割り当てるか、ロックを持つ 1 つのエンジンの使用を直列化する必要があります。..
PaintContext PaintContext インタフェースは、Graphics2D に対する塗りつぶしまたはストローク操作のためにデバイス空間でカラーパターンを生成するための、カプセル化され、最適化された環境を定義します。PaintContext は、ColorModel に関連した Raster の形式で、Graphics2D 操作に必要な色を提供します。PaintContext は、特定のペイント操作の状態を維持します。マルチスレッド環境では、1 つの Paint オブジェクトに対して同時に複数のコンテキストが存在する場合があります。..
ParserDelegator 指定されたストリームの構文解析を行い、その解析結果に基づいて指定のコールバックを呼び出します。このメソッドは、スレッドに対して安全に実装する必要があります。
Path このインタフェースの実装は不変であり、複数の並行スレッドで安全に使用できます。
Path2D このクラスのイテレータは、マルチスレッドに対して安全ではありません。つまりこのPath2D クラスでは、この Path2D オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。
Path2D.Double このクラスのイテレータは、マルチスレッドに対して安全ではありません。つまりこの Path2D クラスでは、この Path2D オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。
Path2D.Float このクラスのイテレータは、マルチスレッドに対して安全ではありません。つまりこの Path2D クラスでは、この Path2D オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。
Pattern このクラスのインスタンスは不変であるため、複数のスレッドで並行して使用できます。Matcher クラスのインスタンスは、複数スレッドでの並行使用に対応していません。
PermissionCollection PermissionCollection のサブクラス実装は、複数スレッドから同時に呼び出されることを想定しなければならず、そのため、適切に同期を取る必要があります。それだけでなく、elements メソッドで返される Enumerations はフェイルファストではありません。コレクションの列挙中に、コレクションへ変更を加えてはいけません。
Phaser 待機。awaitAdvance(int) メソッドは、到着フェーズ番号を示す引数を必要とし、フェーザーが別のフェーズに進むと (または、すでにそのフェーズにあるときは) 復帰します。CyclicBarrier を使用した類似の構築とは異なり、awaitAdvance メソッドは、待機中のスレッドが割り込まれた場合でも引き続き待機します。割り込み可能なバージョンやタイムアウトバージョンも使用できますが、タスクが割り込み可能な状態またはタイムアウトで待機中に検出された例外によって、フェーザーの状態は変更されません。必要に応じて、しばしば forceTermination を呼び出したあとに、これらの例外のハンドラ内で関連する任意の回復を実行できます。また、フェーザーは、ForkJoinPool で実行されているタスクでも使用できます。これにより、ほかのタスクがフェーズが進むのを待機してブロックされているときにタスクを実行するための十分な並列性が確保されます。 終了。フェーザーは終了状態に入ることがあり、これは isTerminated() メソッドを使用してチェックできます。終了時は、負の戻り値で示されるように、..
Pipe パイプにバイトを書き込んだとき、そのバイトまたは以前に書き込まれたバイトが別のスレッドによって読み取られるまで書き込み側のスレッドがブロックされるかどうかは、システムによって決定されるため未指定です。多くの場合、パイプの実装は、受信チャネルとソースチャネル間のバイト数を最大バイト数としてバッファリングします。しかし、このバッファリングが必ず行われるわけではありません。..
PipedInputStream パイプで連結された入力ストリームは、パイプで連結された出力ストリームに接続するようにします。これによって、パイプで連結された入力ストリームが提供するデータバイトは、パイプで連結された出力ストリームにすべて書き込まれます。通常、データは 1 つのスレッドによって PipedInputStream オブジェクトから読み込まれ、対応する PipedOutputStream に別のスレッドによって書き込まれます。単一のスレッドから両方のオブジェクトを使用することは、スレッドがデッドロックする可能性があるため推奨されていません。パイプで連結された入力ストリームには一定範囲のバッファーが含まれるため、読み込み操作と書き込み操作は分離されます。パイプで連結された出力ストリームにデータバイトを提供していたスレッドが無効になった場合は、パイプが「壊れている」と言います。..
PipedOutputStream パイプで連結された出力ストリームをパイプで連結された入力ストリームに接続することで、通信パイプを作成することができます。パイプで連結された出力ストリームは、パイプの送信側です。通常、データは 1 つのスレッドによって PipedOutputStream オブジェクトに書き込まれ、接続された PipedInputStream から別のスレッドによって読み込まれます。単一のスレッドから両方のオブジェクトを使用することは、スレッドがデッドロックする可能性があるため推奨されていません。パイプで連結された入力ストリームからデータバイトを読み込んでいたスレッドが無効になった場合は、パイプが「壊れている」と言います。..
PipedWriter 指定された char を、パイプで連結された出力ストリームに書き込みます。接続されているパイプで連結された入力ストリームからスレッドがデータ文字を読み込んでいたときに、スレッドが無効になった場合、IOException がスローされます。 指定された文字配列の、オフセット位置 off から始まる len 文字を、このパイプで連結された出力ストリームに書き込みます。このメソッドは、出力ストリームにすべての文字が書き込まれるまでブロックします。接続されているパイプで連結された入力ストリームからスレッドがデータ文字を読み込んでいたときに、スレッドが無効になった場合、IOException がスローされます。..
PixelGrabber InterruptedException - ほかのスレッドがこのスレッドを中断した場合。
PKIXBuilderParameters 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
PKIXCertPathBuilderResult 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
PKIXCertPathChecker 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
PKIXCertPathValidatorResult 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
PKIXParameters 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
PlainDocument ドキュメントに内容を挿入します。内容の挿入によって、実際の変更が起きるまでは書き込みロックが保持されます。そのあとで、書き込みロックをグラブしているスレッド上のオブザーバに通知が行われます。 このメソッドはスレッドセーフですが、ほとんどの Swing メソッドは違います。詳細は、「How to Use Threads」を参照してください。
PolicyNode すべての PolicyNode オブジェクトは、不変で、スレッドに対して安全である必要があります。このクラスで定義されたメソッドは、悪影響を与えることなく、複数スレッドが並行して単一 PolicyNode オブジェクト (または 1 つ以上) 上で呼び出すことができます。このことは、このクラスのすべての public フィールドとメソッド、そしてサブクラスで追加またはオーバーライドされた public フィールドとメソッドに当てはまります。..
PolicyQualifierInfo すべての PolicyQualifierInfo オブジェクトは、不変で、スレッドに対して安全である必要があります。つまり、単一の (または複数の) PolicyQualifierInfo オブジェクト上で、このクラスに定義されたメソッドを複数のスレッドが同時に呼び出しても、悪影響はありません。PolicyQualifierInfo オブジェクトは、不変かつスレッドに対して安全でなければならないので、アクセスの調整を心配することなく、オブジェクトをさまざまなコードに渡すことができます。..
Preferences このクラスのメソッドは、1 つの JVM の複数のスレッドから並行して呼び出すことができます。このとき、外部的に同期化する必要はありません。実行結果は、逐次実行した場合と等価です。このクラスが複数の JVM によって同時に使用され、設定データが同じバッキングストアに格納された場合、データストアは破壊しませんが、設定データの一貫性は保証されません。
Principal このクラスは、アイデンティティーを表します。アイデンティティーは、人々、会社、組織などの実際の世界のオブジェクトで、そのアイデンティティーがその公開鍵を使用して認証できるものです。アイデンティティーはまた、デーモンスレッドやスマートカードのようなより抽象的、あるいはより具象的な構成概念であってもかまいません。
Principal このクラスは、アイデンティティーを表します。アイデンティティーは、人々、会社、組織などの実際の世界のオブジェクトで、そのアイデンティティーがその公開鍵を使用して認証できるものです。アイデンティティーはまた、デーモンスレッドやスマートカードのようなより抽象的、あるいはより具象的な構成概念であってもかまいません。
PrinterJob SecurityException - セキュリティーマネージャーが存在し、セキュリティーマネージャーの SecurityManager.checkPrintJobAccess() メソッドにより、このスレッドでの印刷ジョブ要求の作成が禁止されている場合
PrinterStateReasons 一度構築されてしまうと変更されないことが多い通常の印刷属性とは異なり、PrinterStateReasons クラスは変更可能に設計されています。PrinterStateReason オブジェクトを既存の PrinterStateReasons オブジェクトに追加したり、再度削除したりすることができます。ただし、java.util.HashMap クラスと同じく、PrinterStateReasons クラスもマルチスレッドに対して安全ではありません。PrinterStateReasons オブジェクトがマルチスレッドで使用される場合、確実に操作を同期させてください。たとえば java.util.Collections クラスから取得された同期化マップビューを使って同期させることができます。..
PrintJobAttribute JobStateReasons クラスは java.util.HashSet クラスから実装を継承します。一度構築されてしまうと変更されないことが多い通常の印刷属性とは異なり、JobStateReasons クラスは変更可能に設計されています。JobStateReason オブジェクトを既存の JobStateReasons オブジェクトに追加したり、再度削除したりすることができます。ただし、java.util.HashSet クラスと同じく、JobStateReasons クラスもマルチスレッドに対して安全ではありません。JobStateReasons オブジェクトがマルチスレッドで使用される場合、確実に操作を同期させてください。たとえば java.util.Collections クラスから取得された同期化セットビューを使って同期させることができます。..
PrintServiceAttribute 一度構築されてしまうと変更されないことが多い通常の印刷属性とは異なり、PrinterStateReasons クラスは変更可能に設計されています。PrinterStateReason オブジェクトを既存の PrinterStateReasons オブジェクトに追加したり、再度削除したりすることができます。ただし、java.util.HashMap クラスと同じく、PrinterStateReasons クラスもマルチスレッドに対して安全ではありません。PrinterStateReasons オブジェクトがマルチスレッドで使用される場合、確実に操作を同期させてください。たとえば java.util.Collections クラスから取得された同期化マップビューを使って同期させることができます。..
PrintServiceAttributeListener 印刷サービスのイベントをリスナーに通知するために呼び出されます。印刷サービスでは、このメソッドをイベント通知スレッドで呼び出します。クライアントは、このコールバックで冗長な処理を実行しないようにしてください。さもないと、そのあとのイベント通知がブロックされることがあります。
PriorityQueue この実装は synchronized されません。いずれかのスレッドがキューを変更する場合は、複数のスレッドが PriorityQueue インスタンスに並行してアクセスしてはいけません。代わりに、スレッドセーフな PriorityBlockingQueue クラスを使用してください。
Process 必要な場合に、この Process オブジェクトが表すプロセスが終了するまで現在のスレッドを待機させます。 必要な場合に、この Process オブジェクトが表すプロセスが終了するまで現在のスレッドを待機させます。サブプロセスがすでに終了している場合、このメソッドはただちに復帰します。サブプロセスが終了していない場合、呼び出し側スレッドはサブプロセスが終了するまでブロックされます。 InterruptedException - 現在のスレッドが待機中にほかのスレッドによって割り込まれた場合、待機を終了して InterruptedException がスローされる。..
ProcessBuilder このクラスは同期化されません。複数のスレッドが ProcessBuilder インスタンスに並行してアクセスし、少なくとも 1 つのスレッドが構造的に 1 つの属性を変更した場合、変更された属性は外部で同期化されなければいけません。
Properties このクラスはスレッドセーフです。外部の同期化を行わなくても、複数のスレッドで単一の Properties オブジェクトを共有できます。
PropertyChangeListener このメソッドは、ファイルロードスレッドに割り込むとき使用します。
PropertyChangeSupport PropertyChangeSupport インスタンスはスレッドセーフです。
PushbackInputStream この入力ストリームのメソッドの次の呼び出しによって、ブロックせずにこの入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数を返します。次の呼び出しは、同じスレッドの場合も別のスレッドの場合もあります。このような多数のバイトを 1 回で読み込んだりスキップしたりすることでブロックすることはありませんが、読み込むまたはスキップするバイト数が少なくなることがあります。..
QuadCurve2D この QuadCurve2D の形状の境界を定義する反復オブジェクトを返します。このクラスのイテレータは、マルチスレッドに対して安全ではありません。つまりこのQuadCurve2D クラスでは、この QuadCurve2D オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。 この QuadCurve2D の平坦化された形状の境界を定義する反復オブジェクトを返します。このクラスのイテレータは、マルチスレッドに対して安全ではありません。つまりこのQuadCurve2D クラスでは、この QuadCurve2D オブジェクトの幾何学的図形を変更すると、この幾何学的図形についてすでに進行中の反復処理に影響を及ぼす場合があります。..
QueryEval このスレッドによって、最後に setMBeanServer メソッドに渡された MBean サーバーを返します。 クエリーが実行される MBean サーバーを設定します。この設定は、セットを実行するスレッドに対して有効です。スレッドの作成時にそのスレッドによって作成されたすべてのスレッドにコピーされます。 このスレッドによって、最後に setMBeanServer メソッドに渡された MBean サーバーを返します。このスレッドがそのメソッドを呼び出したことがない場合、このスレッドの作成時に getMBeanServer から親スレッドの値を取得します。親スレッドがない場合は null です。..
Random java.util.Random のインスタンスはスレッドセーフです。ただし、複数のスレッドで同じ java.util.Random インスタンスを並行して使用すると、競合が発生してパフォーマンスが低下する可能性があります。マルチスレッド設計では、代わりに ThreadLocalRandom を使用することを検討してください。 Random クラスによる nextGaussian メソッドの実装は、次のスレッドセーフなバージョンと同等です。..
RandomAccess この実装は同期化されません。複数のスレッドが並行して ArrayList のインスタンスにアクセスし、1 つ以上のスレッドが構造的にリストを変更する場合には、リストを外部的に同期化する必要があります。構造的な変更とは、1 つ以上の要素を追加または削除したり、基になる配列のサイズを明示的に変更したりする処理のことです。要素の値だけを設定する処理は、構造的な変更ではありません。通常、リストの同期をとるには、リストを自然にカプセル化するオブジェクトで同期をとります。..
Rdn Rdn のインスタンスに対する読み取り専用の並行マルチスレッドアクセスは、必ずしも同期させなくてもかまいません。
ReadWriteLock 不公平として構築された場合は (デフォルト)、読み込みおよび書き込みロックに入る順序は指定されず、再入可能性制約に従います。継続的に競合していた不公平ロックでは、1 つ以上のリーダーまたはライタースレッドを無期限に延期することがありますが、通常は公平ロックよりスループットが高くなります。 公平として構築された場合、スレッドは近似の到着順ポリシーを使用してエントリで競合します。現在保持されているロックが解放されると、待機時間のもっとも長い単一のライタースレッドに書き込みロックが割り当てられるか、待機中のどのライタースレッドよりも長く待機しているリーダースレッドのグループが存在する場合は、そのグループに読み込みロックが割り当てられます。 書き込みロックが保持されている場合や待機中のライタースレッドが存在する場合、公平読み込みロック (再入不可能) を取得しようとするスレッドはブロックされます。そのようなスレッドは、現在待機中のライタースレッドのうちもっとも古いスレッドが書き込みロックを取得して解放するまで、読み込みロックを取得しません。もちろん、待機中のライターが待機を中止し、キュー内でもっとも長く待機している ..
Rectangle2D この Rectangle2D の境界を定義する反復オブジェクトを返します。このクラスのイテレータは、マルチスレッドに対して安全です。つまりこの Rectangle2D クラスは、この Rectangle2D オブジェクトの幾何学的図形に対する変更が、幾何学的図形についてすでに進行中の反復処理に影響を与えないことを保証します。 平坦化された Rectangle2D の境界を定義する反復オブジェクトを返します。矩形はすでに平坦であるため、flatness パラメータは無視される。このクラスのイテレータは、マルチスレッドに対して安全です。つまりこの Rectangle2D クラスは、この Rectangle2D オブジェクトの幾何学的図形に対する変更が、幾何学的図形についてすでに進行中の反復処理に影響を与えないことを保証します。..
ReentrantLock ReentrantLock は、最後にロックに成功したが、まだロック解除していないスレッドによって所有されます。ロックが別のスレッドに所有されていない場合、lock を呼び出すスレッドが復帰してロックの取得に成功します。現在のスレッドがロックをすでに所有している場合、メソッドはただちに復帰します。これは、isHeldByCurrentThread() メソッドと getHoldCount() メソッドを使用してチェックできます。 このクラスのコンストラクタは、オプションの公平性パラメータを受け入れます。true に設定されている場合は、競合が存在すると、ロックではもっとも長く待機しているスレッドにアクセスが許可されます。そうでない場合、このロックが特定のアクセス順を保証することはありません。多数のスレッドによりアクセスされる公平ロックを使用するプログラムは、デフォルト設定を使用するプログラムよりも低い (より低速な、多くの場合非常に低速な) 全体スループットを表示する場合がありますが、ロックを取得する際の変動はより小さくなり、枯渇しないことが保証されます。ただし、ロックの公平性により、スレッドスケジューリング..
ReentrantReadWriteLock 不公平として構築された場合は (デフォルト)、読み込みおよび書き込みロックに入る順序は指定されず、再入可能性制約に従います。継続的に競合していた不公平ロックでは、1 つ以上のリーダーまたはライタースレッドを無期限に延期することがありますが、通常は公平ロックよりスループットが高くなります。 公平として構築された場合、スレッドは近似の到着順ポリシーを使用してエントリで競合します。現在保持されているロックが解放されると、待機時間のもっとも長い単一のライタースレッドに書き込みロックが割り当てられるか、待機中のどのライタースレッドよりも長く待機しているリーダースレッドのグループが存在する場合は、そのグループに読み込みロックが割り当てられます。 書き込みロックが保持されている場合や待機中のライタースレッドが存在する場合、公平読み込みロック (再入不可能) を取得しようとするスレッドはブロックされます。そのようなスレッドは、現在待機中のライタースレッドのうちもっとも古いスレッドが書き込みロックを取得して解放するまで、読み込みロックを取得しません。もちろん、待機中のライターが待機を中止し、キュー内でもっとも長く待機している ..
ReentrantReadWriteLock.ReadLock 現在のスレッドに割り込みが発生しないかぎり、読み込みロックを取得します。 呼び出し時に別のスレッドにより書き込みロックが保持されていない場合にのみ、読み込みロックを取得します。 指定された待機時間内に別のスレッドが書き込みロックを保持せず、現在のスレッドで割り込みが発生していない場合に、読み込みロックを取得します。 書き込みロックが別のスレッドにより保持されていない場合は、読み込みロックを取得してただちに復帰します。 書き込みロックが別のスレッドにより保持されている場合、現在のスレッドはスレッドのスケジューリングに関して無効になり、読み込みロックが取得されるまで待機します。 現在のスレッドに割り込みが発生しないかぎり、読み込みロックを取得します。 書き込みロックが別のスレッドにより保持されていない場合は、読み込みロックを取得してただちに復帰します。 書き込みロックが別のスレッドにより保持されている場合、現在のスレッドはスレッドのスケジューリングに関して無効になり、次の 2 つのいずれかが起きるまで待機します。 現在のスレッドにより読み込みロックが取得される ほかのスレッドが現在のスレッドに割り込みを行う。 現..
ReentrantReadWriteLock.WriteLock 現在のスレッドの、この書き込みロックに対する保持数を照会します。 現在のスレッドがこの書き込みロックを保持しているかどうかを照会します。 現在のスレッドに割り込みが発生しないかぎり、書き込みロックを取得します。 呼び出し時に別のスレッドにより保持されていない場合のみに、書き込みロックを取得します。 指定された待機時間内に別のスレッドがロックを保持せず、現在のスレッドで割り込みが発生していない場合に、書き込みロックを取得します。 読み込みロックまたは書き込みロックのいずれも別のスレッドに保持されていない場合、書き込みロックを取得してただちに復帰し、書き込みロックの保持カウントを 1 に設定します。 現在のスレッドが書き込みロックをすでに保持している場合、保持カウントの値を 1 増分して、メソッドをただちに復帰します。 ロックが別のスレッドにより保持されている場合、現在のスレッドがスレッドスケジューリングに関して無効になり、書き込みロックが取得されるまで待機します。ロックが取得されると、書き込みロック保持カウントが 1 に設定されます。 現在のスレッドに割り込みが発生しないかぎり、書き込みロックを取得します。 読..
Refreshable 注: このメソッドは、このオブジェクトのアクセス用メソッドと同期していません。したがって、呼び出し側は、このオブジェクトにアクセスし、更新を試みるスレッドが同時に複数存在する可能性がある点に注意する必要があります。
RemoteServer 現在のスレッドで処理されているリモートメソッド呼び出しのクライアントホストを示す文字列表現を返します。 ServerNotActiveException - 現在のスレッドでリモートメソッド呼び出しが処理されていない場合導入されたバージョン:
RenderableImageProducer RenderableImage の非同期生成を可能にする ImageProducer を実装するアダプタクラスです。ImageConsumer のサイズは、RenderContext の usr2dev 変換のスケーリング係数によって決まります。RenderContext が null の場合は、RenderableImage のデフォルトの描画が使用されます。このクラスは、1 つの解像度で、1 つのスレッドにイメージを生成する非同期生成を実装します。このクラスをサブクラス化して、複数のスレッドを使用してイメージを生成するバージョンを実装することができます。これらのスレッドは、段階的に高い品質で同じイメージを描画することも、単一の解像度でイメージの異なる部分を描画することもできます。..
RepaintManager レイアウトの必要に応じてコンポーネントをマークし、コンポーネントの最初の isValidateRoot() の上位オブジェクトを検証するイベントディスパッチスレッドのために実行可能なコンポーネントを待ち行列に入れます。 Component を指定して、呼び出し側スレッドの RepaintManager を返します。 JComponent を指定して、呼び出し側スレッドの RepaintManager を返します。 呼び出し側スレッドで使用される RepaintManager を設定します。 Component を指定して、呼び出し側スレッドの RepaintManager を返します。 JComponent を指定して、呼び出し側スレッドの RepaintManager を返します。 呼び出し側スレッドで使用される RepaintManager を設定します。aRepaintManager が、呼び出し側スレッドのスレッドグループの現在の RepaintManager になります。 レイアウトの必要に応じてコンポーネントをマークし、コンポーネントの最初の isValidateRoot() の上位オブジェクトを..
ResolveResult ResolveResult インスタンスは、並行のマルチスレッドアクセスに備えて同期化されません。複数のスレッドが同じ ResolveResult インスタンスにアクセスして変更しようとすると、オブジェクトはロックされます。
ResourceBundle.Control 複数のスレッドが同時に使用する ResourceBundle.Control インスタンスは、スレッドセーフでなければいけません。ResourceBundle.getBundle は、ResourceBundle.Control のメソッドを呼び出す際に同期処理を行いません。これらのメソッドのデフォルト実装はスレッドセーフです。 このメソッドによって返される ResourceBundle.Control インスタンスは単独であり、スレッドセーフです。 getFormats メソッドが指定された formats を返し、かつ getFallbackLocale メソッドが null を返す、ResourceBundle.Control を返します。formats は、FORMAT_PROPERTIES、FORMAT_CLASS、または FORMAT_DEFAULT のいずれかと等しくなる必要があります。このメソッドによって返される ResourceBundle.Control インスタンスは単独であり、スレッドセーフです。..
RMIClassLoader codebase という名前の String パラメータ (空白で区切られた URL のリスト) を取る、次に説明する各メソッド実装について、メソッドが呼び出されるたびに特定のコードベースローダーが関連付けられます。コードベースローダーは、codebase 引数と現在のスレッドのコンテキストクラスローダー (Thread.getContextClassLoader() を参照) とを組み合わせて検索されます。セキュリティーマネージャーが存在する場合、このプロバイダは、クラスローダーインスタンスの内部テーブル (少なくとも URLClassLoader のインスタンスを含む) を保持します。このテーブルのキーは、親のクラスローダーとそのコードベース URL パス (URL の順序付きリスト) のペアです。codebase 引数が null の場合、コードベース URL パスは、システムプロパティー java.rmi.server.codebase の値、以前のキャッシュされた値のいずれかになります。あるコードベース URL パスがある特定のコンテキスト内で次のいずれかのメソッドの呼び出しの codebase 引..
RMIConnector 接続の終了は、時間のかかるオペレーションです。たとえばサーバーがクラッシュした場合、終了オペレーションはネットワークプロトコルのタイムアウトまで中断される可能性があります。終了オペレーションの途中で待たされたくない場合は、別スレッドで実行してください。
RMIConnectorServer コネクタサーバーの終了は、時間のかかるオペレーションです。たとえば有効な接続を持っているクライアントマシンがクラッシュした場合、終了オペレーションはネットワークプロトコルのタイムアウトまで中断される可能性があります。終了オペレーションの途中で待たされたくない場合は、別スレッドで実行してください。
Robot IllegalThreadStateException - AWT イベントディスパッチスレッドに対して呼び出された場合
RootPaneContainer 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
RoundRectangle2D この RoundRectangle2D の境界を定義する反復オブジェクトを返します。このクラスのイテレータは、マルチスレッドに対して安全です。つまりこの RoundRectangle2D クラスは、この RoundRectangle2D オブジェクトの幾何学的図形に対する変更が、幾何学的図形についてすでに進行中の反復処理に影響を与えないことを保証します。
RowSet 注: 複数のスレッドが createShared() メソッドによって作成された RowSet オブジェクトにアクセスする場合、共有データの整合性を確保するため、次の動作が指定されます。すべての共有された RowSet オブジェクトの読み取りと書き込みは、各オブジェクトと配下の単一の表構造間で逐次行われる必要があります。
RowSorter RowSorter 実装と配下のモデルのマッピングは、通常、1 対 1 にはなっていませんが、1 対 1 にすることも可能です。たとえば、ソートを行うデータベースは、バックグラウンドスレッド上で toggleSortOrder を呼び出します。このメソッドは、マッピングメソッドをオーバーライドして、渡された引数を返します。
RowSorterListener 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。 SecurityException - 出力ジョブ要求の開始がこのスレッドに許可されていない場合 2 番目の boolean パラメータを使用すると、対話型モードで出力を実行するかどうかを指定できます。true の場合は、出力中に中止オプションの付いたモーダルな進捗ダイアログが表示されます。このダイアログでは、テーブルに影響を及ぼすユーザーアクションを防止することもできます。ただし、テーブルがコード (SwingUtilities.invokeLater を使用して更新内容を送る別のスレッドなど) によって変更されないようにすることはできません。このため、開発者は出力中にテーブルがほかのコードによって決して変更されないようにする必要があります (不正な変更には、サイズ、レンダリング、ベースとなるデータの変更がある)。出力中にテーブルが変更されると、出力動作は保証されません。 このパラメータを false に指定すると、ダイアログは表示されず、イベントディスパッチスレッドで..
Runnable 子ビューのレイアウト状態を表すレコードです。別のスレッドでタスクとして実行可能です。モデルの読み込みロックに基づいている子ビューへのアクセスはすべて、このオブジェクト上で同期化する必要があります。つまり、レイアウトスレッドと GUI スレッドは同時にどちらもモデルの読み込みロックを持つことができ、お互いから保護されません。子ビュー階層へのアクセスは、ChildState インスタンスでの同期化によって直列化されます。 子の状態を更新します。子の状態を更新するのに時間のかかるスレッドにより呼び出されるようにします。レイアウトスレッドを想定しています。..
RunnableFuture このタスクの実行の取り消しを試みます。タスクがすでに完了していた場合、すでに取り消されていた場合、またはその他の理由で取り消しできなかった場合、この試みは失敗します。その試みが成功し、cancel の呼び出し時にこのタスクが起動しなかった場合、このタスクが実行されることはありません。タスクが起動済みの場合は、このタスクの停止を試みる際、このタスクを実行しているスレッドに割り込む必要があるかどうかは、mayInterruptIfRunning パラメータで判断します。 パラメータ:mayInterruptIfRunning - このタスクを実行しているスレッドに割り込む必要がある場合は true、そうでない場合は、実行中のタスクを完了できる InterruptedException - 待機中に現在のスレッドで割り込みが発生した場合..
Runtime このメソッドは本質的に安全ではありません。ファイナライザがライブオブジェクトに対して呼び出される結果になる可能性があり、そのときにほかのスレッドがそれらのオブジェクトを並行して操作していると、動作が異常になるか、デッドロックが発生します。 通常プログラムが終了するのは、デーモンでない最後のスレッドが終了したときか、exit (または同等の System.exit) メソッドが呼び出されたときです。あるいは、 シャットダウンフックは初期化されただけで起動していないスレッドです。仮想マシンがシャットダウンシーケンスを開始すると、すべての登録済みシャットダウンフックを、指定されていない順序で起動し並行して実行します。フックがすべて終了すると、終了時のファイナライズが有効である場合はすべての呼び出されていないファイナライザを実行します。最後に、仮想マシンは停止します。 exit メソッドを呼び出してシャットダウンが開始された場合は、デーモンではないスレッドと同様、デーモンスレッドはシャットダウンシーケンスの間、実行を続けます。 シャットダウンフックは仮想マシンのライフサイクルの微妙な時期に起動するため、コーディングす..
RuntimePermission スレッドが使うコンテキストクラスローダーの設定 コンテキストクラスローダーは、システムクラスローダーに存在しない可能性のあるリソースを探す必要があるときに、システムコードおよびエクステンションによって使用されます。setContextClassLoader アクセス権を与えると、コードは、システムスレッドを含め、特定のスレッドで使用するコンテキストクラスローダーを変更できるようになります。 スレッドのコンテキストクラスローダーメソッドのサブクラス実装 コンテキストクラスローダーは、システムクラスローダーに存在しない可能性のあるリソースを探す必要があるときに、システムコードおよびエクステンションによって使用されます。enableContextClassLoaderOverride アクセス権の許可によって、スレッドのサブクラスは、特定のスレッドのコンテキストクラスローダーの取得または設定に使用されるメソッドをオーバーライドできます。 Thread の interrupt、stop、suspend、resume、setDaemon、setPriority、setName、および setUncaughtExcept..
SaslClientFactory SaslClient のインスタンスを作成するためのインタフェースです。このインタフェースは、スレッドセーフで、複数の要求を同時に処理できるクラスによって実装されます。このクラスは、引数をとらない public コンストラクタを持っている必要があります。
SaslServerFactory SaslServer のインスタンスを作成するためのインタフェースです。このインタフェースは、スレッドセーフで、複数の要求を同時に処理できるクラスによって実装されます。このクラスは、引数をとらない public コンストラクタを持っている必要があります。
Scanner Scanner が、外部の同期化を行わずにマルチスレッドを使用するのは安全ではありません。
ScatteringByteChannel ファイルチャネルは、複数の並行スレッドで安全に使用できます。close メソッドは、Channel インタフェースの指定どおりにいつでも呼び出せます。チャネルの位置を使用する操作、またはファイルサイズを変更する可能性がある操作は、1 つずつ実行することになっています。前の操作の進行中に同じような操作を新しく開始しようとすると、最初の操作が終わるまで新しい操作はブロックされます。その他の操作、とりわけ明示的な位置を使用する操作は、前の操作と同時並行で実行できます。同時並行処理が行われるかどうかは基礎となる実装によって決まるため、未指定です。 AsynchronousCloseException - 読み取り操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合 ClosedByInterruptException - 読み取り操作の進行中に、別のスレッドからの割り込みがあったためにチャネルがクローズし、現在のスレッドの割り込みステータスが設定された場合 AsynchronousCloseException - 読み取り操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合 Close..
ScheduledExecutorService 指定された遅延時間後または定期的にコマンドを実行するようにスケジュールできる ThreadPoolExecutor です。複数のワーカースレッドが必要な場合、またはこのクラスが拡張する ThreadPoolExecutor にさらに柔軟性または機能が必要な場合は、Timer よりもこのクラスを使用することをお勧めします。 scheduleAtFixedRate または scheduleWithFixedDelay を使用してスケジュールされたタスクを連続的に実行しても、オーバーラップは発生しません。各実行は異なるスレッドによって実行される可能性がありますが、以前の実行の効果は以降の実行の効果の前に発生します。 このクラスは ThreadPoolExecutor から継承されますが、継承されたチューニングメソッドのいくつかはこのクラスにとって有効ではありません。特に、これは corePoolSize スレッドとアンバウンド形式のキューを使用した固定サイズのプールとして機能するため、maximumPoolSize を調整しても効果はありません。さらに、corePoolSize を 0 に設定したり、allowCo..
ScheduledThreadPoolExecutor 指定された遅延時間後または定期的にコマンドを実行するようにスケジュールできる ThreadPoolExecutor です。複数のワーカースレッドが必要な場合、またはこのクラスが拡張する ThreadPoolExecutor にさらに柔軟性または機能が必要な場合は、Timer よりもこのクラスを使用することをお勧めします。 scheduleAtFixedRate または scheduleWithFixedDelay を使用してスケジュールされたタスクを連続的に実行しても、オーバーラップは発生しません。各実行は異なるスレッドによって実行される可能性がありますが、以前の実行の効果は以降の実行の効果の前に発生します。 このクラスは ThreadPoolExecutor から継承されますが、継承されたチューニングメソッドのいくつかはこのクラスにとって有効ではありません。特に、これは corePoolSize スレッドとアンバウンド形式のキューを使用した固定サイズのプールとして機能するため、maximumPoolSize を調整しても効果はありません。さらに、corePoolSize を 0 に設定したり、allowCo..
Schema Schema オブジェクトはスレッドに対して安全です。アプリケーションでは、複数のスレッド内の複数のパーサーでこのオブジェクトを共有することをお勧めします。
SchemaFactory SchemaFactory クラスはスレッドに対して安全ではありません。つまり、アプリケーション側で、どのような場合も SchemaFactory オブジェクトを使用するスレッドが 1 つだけであるようにする必要があります。実装では、メソッドに synchronized のマークを付けて、障害のあるクライアントから保護することをお勧めします。 SchemaFactory は再入不可能です。newSchema メソッドの 1 つが呼び出されているときに、アプリケーションは、同じスレッドからであっても、newSchema メソッドを再帰的に呼び出すことはできません。..
ScriptEngineFactory null - エンジンの実装はスレッドセーフではないため、複数のスレッドで並行してスクリプトを実行するために使用できません。 "MULTITHREADED" - エンジンの実装は内部的にスレッドセーフです。あるスレッドでスクリプトを実行した場合の効果がほかのスレッド上のスクリプトに可視である場合もありますが、スクリプトを並行に実行できます。 "THREAD-ISOLATED" - 実装は "MULTITHREADED" の要件を満たします。また、異なるスレッドで実行中のスクリプトのシンボルの値は別々に管理されます。..
ScriptEngineManager スレッドコンテキスト ClassLoader に呼び出し側からアクセスできる場合、このコンストラクタの呼び出しの効果は ScriptEngineManager(Thread.currentThread().getContextClassLoader()) を呼び出した場合と同じです。 スレッドコンテキスト ClassLoader に呼び出し側からアクセスできる場合、このコンストラクタの呼び出しの効果は ScriptEngineManager(Thread.currentThread().getContextClassLoader()) を呼び出した場合と同じです。それ以外の場合、ScriptEngineManager(null) を呼び出した場合と同じ結果になります。..
Scrollbar AWT スレッドモデルの詳細は、「AWT スレッドの問題」を参照してください。
ScrollPaneAdjustable AWT スレッドモデルの詳細は、「AWT スレッドの問題」を参照してください。
ScrollPaneConstants 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
SearchControls SearchControls インスタンスは、並行マルチスレッドアクセスに対して同期化されません。複数のスレッドが同じ SearchControls インスタンスにアクセスして変更しようとすると、オブジェクトはロックされます。
SearchResult SearchResult インスタンスは、並行マルチスレッドアクセスに対して同期化されません。複数のスレッドが同じ SearchResult インスタンスにアクセスして変更しようとすると、オブジェクトはロックされます。
SecondaryLoop enter() メソッドが呼び出されると、exit() メソッドによってループが終了するまで、現在のスレッドはブロックされます。また、新しいイベントループがイベントディスパッチスレッド上で開始されますが、それは現在のスレッドである場合もそうでない場合もあります。どのスレッド上でも、ループはその exit() メソッドを呼び出すことによって終了させることができます。ループの終了後、SecondaryLoop オブジェクトを再利用して、ネストされた新しいイベントループを実行できます。 このインタフェースを適用する一般的な使用例は、AWT および Swing のモーダルダイアログです。モーダルダイアログは、イベントディスパッチスレッド上で表示されると、新しいセカンダリイベントループに入ります。その後、ダイアログが非表示にされるか破棄されると、ダイアログはループを終了し、スレッドは実行を続けます。 現在のスレッドの実行をブロックし、イベントディスパッチスレッド上の新しいセカンダリイベントループに入ります。 enter() メソッドによってブロックされたスレッドの実行をブロック解除し、セカンダリループを抜けます。 現在..
SecurityManager Java 2 SDK v1.2 の SecurityManager にあるその他の check 系メソッドのデフォルトの実装では、SecurityManager checkPermission メソッドが呼び出されます。この方法で、要求された操作の実行に必要なアクセス権が呼び出し側スレッドにあるかどうかを調べます。 アクセス権の引数が 1 つだけの checkPermission メソッドは常に、現在実行中のスレッドのコンテキスト内だけでセキュリティーチェックを実行します。しかし実際には、指定されたコンテキスト内で行うセキュリティーチェックを、別のコンテキスト内から (たとえば、ワーカースレッド内から) 行わなければならない場合もあります。getSecurityContext メソッドと、コンテキスト引数を含む checkPermission メソッドは、この状況のために用意されたものです。getSecurityContext メソッドは、現在の呼び出し側コンテキストのスナップショットを返します。デフォルトの実装では AccessControlContext オブジェクトを返します。呼び出しの例を次に示します..
SeekableByteChannel ファイルチャネルは、複数の並行スレッドで安全に使用できます。close メソッドは、Channel インタフェースの指定どおりにいつでも呼び出せます。チャネルの位置を使用する操作、またはファイルサイズを変更する可能性がある操作は、1 つずつ実行することになっています。前の操作の進行中に同じような操作を新しく開始しようとすると、最初の操作が終わるまで新しい操作はブロックされます。その他の操作、とりわけ明示的な位置を使用する操作は、前の操作と同時並行で実行できます。同時並行処理が行われるかどうかは基礎となる実装によって決まるため、未指定です。 AsynchronousCloseException - 読み取り操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合 ClosedByInterruptException - 読み取り操作の進行中に、別のスレッドからの割り込みがあったためにチャネルがクローズし、現在のスレッドの割り込みステータスが設定された場合 AsynchronousCloseException - 読み取り操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合 Close..
SelectableChannel チャネルの登録を直接解除することはできません。その代わりに、登録を表すキーを取り消します。キーを取り消すには、セレクタが次の選択を行なっている間にチャネルの登録を解除します。キーは、cancel メソッドを呼び出すことで明示的に取り消すことができます。close メソッドの呼び出し、またはチャネル上の入出力操作中にブロックされたスレッドに対する割り込みによってチャネルをクローズすると、必然的に、そのチャネルのすべてのキーが取り消されます。 選択可能チャネルは、複数の並行スレッドで安全に使用できます。..
SelectionKey 選択キーの実行可能セットは、そのチャネルがある操作カテゴリを実行できる状態になっていることを示します。ただし、これは単なるヒントであって、スレッドがブロックされることなくそのカテゴリの操作を実行できることを保証するわけではありません。通常、実行可能セットは、選択操作完了直後は正確ですが、外部イベントや対応するチャネル上で呼び出される入出力操作によって不正確になる可能性があります。 選択キーは複数の並行スレッドで安全に使用できます。通常、対象セットの読み取りおよび書き込み操作は、セレクタの特定の操作に同期します。この同期処理の方法は実装によって異なります。ネイティブ実装では、選択操作がすでに進行中である場合、対象セットの読み取りや書き込みは無期限にブロックされます。高性能実装では、対象セットの読み取りや書き込みは、ブロックされたとしてもほんの短時間です。いずれの場合も、選択操作には常に、この操作を開始した時点で最新の対象セットの値が使用されます。..
Selector セレクタ自体は、複数の並行スレッドで安全に使用できます。しかし、このことはキーセットには当てはまりません。 キーの取り消しやチャネルのクローズはいつでも実行できます。あるキーが 1 個以上のセレクタのキーセット内に存在していても、そのキーが有効で、チャネルがオープンしているとは限りません。別のスレッドによってキーが取り消されたり、チャネルがクローズされる可能性がある場合は、アプリケーションコードの同期化を慎重に行い、必要に応じてその状態をチェックする必要があります。 select() メソッドまたは select(long) メソッドのいずれかでブロックされたスレッドは、次の 3 つのうちいずれかの方法で、その他のスレッドから割り込みを受けることがあります。 ブロックされたスレッドの interrupt メソッドの呼び出し。この場合、割り込みステータスが設定され、セレクタの wakeup メソッドが呼び出されます。 通常、セレクタのキーセットおよび選択されたキーセットは、複数の並行スレッドで安全に使用できません。いずれかのセットを直接変更するスレッドがある場合、そのセットを同期化することによってアクセス制御を..
SelectorProvider このクラス内のすべてのメソッドは、複数の並行スレッドで安全に使用できます。
Semaphore セマフォーは、物理的または論理的な一部のリソースにアクセス可能なスレッド数を制限するためによく使用されます。たとえば、次のクラスでは、セマフォーを使用して項目のプールへのアクセスを制御します。 項目を取得する前に、各スレッドはセマフォーから、項目が利用可能であることを保証するパーミットを取得する必要があります。項目の処理が完了するとスレッドはプールに戻り、パーミットがセマフォーに返され、ほかのスレッドがその項目を取得できるようになります。acquire() が呼び出されたとき、同期ロックは保持されないことに注意してください。同期ロックが保持されると、項目がプールに返されなくなるためです。セマフォーは、プールへのアクセスを制限する必要のある同期を、プール自体の一貫性を維持するために必要な同期からは分離してカプセル化します。 値を 1 に初期化されたセマフォーは、利用できるパーミットが最大で 1 個であるセマフォーとして使用されるため、相互排他ロックとして利用できます。これは一般的には 2 進型セマフォーと呼ばれます。利用可能なパーミットが 1 つか、または利用可能なパーミットがないかの 2 つの状態しかないため..
SequenceInputStream 現在のベースとなる入力ストリームに対するメソッドの次の呼び出しによって、ブロックせずに現在のベースとなる入力ストリームから読み込むことができる (またはスキップできる) 推定バイト数を返します。次の呼び出しは、同じスレッドの場合も別のスレッドの場合もあります。このような多数のバイトを 1 回で読み込んだりスキップしたりすることでブロックすることはありませんが、読み込むまたはスキップするバイト数が少なくなることがあります。..
ServerRef 現在のクライアントのホスト名を返します。リモートメソッド呼び出しをアクティブに処理するスレッドから呼び出された時に、クライアントのホスト名が返されます。
ServerSocket accept() で現在ブロックされているすべてのスレッドが SocketException をスローします。
ServerSocketChannel サーバーソケットチャネルは、複数の並行スレッドで安全に使用できます。 AsynchronousCloseException - 受け付け操作の進行中に、別のスレッドによってこのチャネルがクローズされた場合 ClosedByInterruptException - 受け付け操作の進行中に、現在のスレッドに対して別のスレッドから割り込みがあったためにチャネルがクローズし、現在のスレッドの割り込みステータスが設定された場合
Service 非同期的コールバックをディスパッチするために使用されるスレッドをより強力に制御するため、Executor をサービスに設定することができます。たとえば、ThreadPoolExecutor を作成し、サービスにそれを登録することによって、特定のパラメータを伴うスレッドプールを有効にできます。
ServiceLoader このクラスのインスタンスは、複数のスレッドで並行して使用することはできません。 指定されたサービスタイプの新しいサービスローダーを、現在のスレッドのコンテキストクラスローダーを使って作成します。
ServiceUI 印刷サービス (プリンタ) 選択用ダイアログをユーザーに提供します。これは、アプリケーションにより指定された位置に表示される、モーダルなダイアログです。仕様が無効であるか、仕様によりダイアログが非表示に設定された場合、実装により指定された位置に表示されます。ダイアログは、呼び出しスレッドをブロックし、アプリケーションモーダルになります。
SimpleDateFormat 日付フォーマットは同期化されません。スレッドごとに別のフォーマットインスタンスを作成することをお勧めします。複数のスレッドがフォーマットに並行してアクセスする場合は、外部的に同期化する必要があります。
SimpleDoc 複数のスレッドから Doc へのアクセス可能にする
Socket このソケットの入出力操作で現在ブロックされているすべてのスレッドが SocketException をスローします。
SocketChannel ソケットチャネルは、Channel クラスに指定されている非同期クローズ操作とよく似た非同期停止をサポートします。一方のスレッドがソケットのチャネルに対する読み込み操作の途中でブロックされているのに、もう一方のスレッドがソケットの入力側を停止した場合、ブロックされたスレッドの読み込み操作は、バイトを一切読み取ることなく終了し、-1 を返します。一方のスレッドがソケットのチャネルに対する書き込み操作の途中でブロックされているのに、もう一方のスレッドがソケットの出力側を停止した場合、ブロックされたスレッドは AsynchronousCloseException を受け取ります。 ソケットチャネルは、複数の並行スレッドで安全に使用できます。データグラムチャネルは並行読み込みおよび書き込みをサポートします。ただし、読み込みを行うスレッドも書き込みを行うスレッドも特定の時点では常に 1 個以下です。connect メソッドと finishConnect メソッドは相互に同期しており、いずれかのメソッドの呼び出し中に読み込みまたは書き込み操作を開始しようとすると、この処理はその呼び出しが完了するまでブロックされます。 A..
SSLEngine SSLEngine は、ブロックされる可能性があるあらゆるオペレーションに対して、Runnable 委譲タスクを生成します。SSLEngineResult により、委譲タスクの結果の必要性が示された場合、アプリケーションは getDelegatedTask() を呼び出して未実行の委譲タスクを取得し、その run() メソッドを呼び出す必要があります。呼び出しに使用されるスレッドは、計算方法によって異なります。アプリケーションは、すべての委譲タスクを取得すると、最初のオペレーションを再試行します。 委譲タスクは別スレッドで処理することができます。SSLEngine が作成されると、現在の AccessControlContext が保存されます。その後、すべての委譲タスクはこのコンテキストで処理されます。つまり、アクセス制御の意思決定はすべて、エンジンの作成時のコンテキストで行われます。 最終的なパケットの順序を保証することができないので、結果的に、2 つのスレッドが同じメソッド (wrap() または unwrap()) を並行して呼び出すことはできません。 SSLEngine オペレーションに必要なオペレ..
StartTlsRequest 構成ファイルおよび対応する実装クラスは、呼び出し側スレッドのコンテキストクラスローダーからアクセスできる必要があります。 このメソッドは、構成ファイルから収集したクラス名のリストから、最初にロードおよびインスタンス化できた実装クラスのインスタンスを返します。このメソッドは、呼び出し側スレッドのコンテキストクラスローダーを使用して構成ファイルを検索し、実装クラスをロードします。..
StateFactory 状態ファクトリの getStateToBind() メソッドは、異なるパラメータを使って複数回呼び出されることがあります。実装はスレッドセーフです。 作成されるオブジェクトの名前を指定するために、必要に応じて name パラメータや nameCtx パラメータを使用できます。詳細は、ObjectFactory.getObjectInstance() にある「名前パラメータとコンテキストパラメータ」の説明を参照してください。コンテキスト実装はスレッドセーフであることが保証されないため、nameCtx を使用する場合、ファクトリはその使用を並行アクセスに対して同期化するようにします。..
StrictMath このメソッドは、複数のスレッドが正しく使えるよう適切に同期されます。しかし、多数のスレッドで擬似乱数を高頻度で発生する必要がある場合は、スレッド独自の擬似乱数ジェネレータを用意して各スレッドのコンテンションを減らしてもかまいません。
StringBuffer スレッドセーフな可変の文字列。文字列バッファーは String に似ていますが、変更できる点が異なります。文字列バッファーには常に文字列が格納されていますが、文字列の長さと内容は特定のメソッドの呼び出しにより変更できます。 文字列バッファーは複数のスレッドによって安全に使用することができます。メソッドは必要に応じて同期化され、特定のインスタンスでのすべてのオペレーションが、関連のある個々のスレッドによって行われるメソッドの呼び出しの順序と一致する連続した順序で発生するように動作します。 JDK 5 以降、このクラスは単一のスレッド StringBuilder により使用されるよう設計された等価のクラスで補足されています。 StringBuilder クラスは、このクラスと同じ処理をすべてサポートしながらも高速であり、同期を実行しないので、通常はこのクラスに優先して使用される必要があります。..
StringBuilder 文字の可変シーケンスです。このクラスは、StringBuffer と互換性がある API を提供しますが、同期化は保証されません。このクラスは、文字列バッファーが単一のスレッド (一般的なケース) により使用されていた場合の StringBuffer の簡単な代替として使用されるよう設計されています。このクラスは、ほとんどの実装で高速に実行されるので、可能な場合は、StringBuffer よりも優先して使用することをお勧めします。 StringBuilder のインスタンスは、複数のスレッドで使用するには安全ではありません。このような同期が必要な場合は、StringBuffer を使用することをお勧めします。..
StringRefAddr 文字列参照アドレスは不変です。つまり、一度作成すると変更できません。単一の StringRefAddr に対するマルチスレッドアクセスを、同期する必要がありません。
StyleContext このメソッドはスレッドセーフですが、ほとんどの Swing メソッドは違います。詳細は、「How to Use Threads」を参照してください。
StyledDocument このメソッドはスレッドセーフですが、ほとんどの Swing メソッドは違います。詳細は、「How to Use Threads」を参照してください。
SwingPropertyChangeSupport これは、java.beans.PropertyChangeSupport とほとんど同じ機能を持つサブクラスです。唯一の違いは、SwingPropertyChangeSupport(sourceBean, true) で構築した場合、イベントディスパッチスレッドにあるリスナーのみが通知を受ける点です。 パラメータ:sourceBean - すべてのイベントのソースとして指定される BeannotifyOnEDT - イベントディスパッチスレッド上のリスナーのみに通知するかどうか isNotifyOnEDT() が true で、イベントディスパッチスレッドを取り消した場合、この実装は SwingUtilities.invokeLater を使ってイベントディスパッチスレッドに通知を送信します。これにより、イベントディスパッチスレッド上にあるリスナーのみに通知が送られます。..
SwingUtilities doRun.run() を、AWT イベントディスパッチスレッドで非同期的に実行させます。 現在のスレッドが AWT イベントディスパッチスレッドの場合に true を返します。 doRun.run() を、AWT イベントディスパッチスレッドで非同期的に実行させます。これは、保留中のすべての AWT イベントが処理されたあとに発生します。このメソッドは、アプリケーションスレッドが GUI を更新する必要があるときに使用されます。次の例では、invokeLater 呼び出しはイベントディスパッチスレッドに Runnable オブジェクトの doHelloWorld のキューを呼び出してから、メッセージを出力します。 invokeLater がイベントディスパッチスレッド、たとえば JButton の ActionListener から呼び出された場合、doRun.run() は保留中のすべてのイベントが処理されるまで実行が延期されます。ただし、doRun.run() がキャッチされない例外をスローする場合は、イベントディスパッチスレッド (現在のスレッドではない) が状態を元に戻します。 このメソッドは、ほか..
SwingWorker GUI とやりとりする時間のかかるタスクを、バックグラウンドスレッドで実行するための abstract クラスです。複数のバックグラウンドスレッドを使用してこうしたタスクを実行できます。ただし、特定の SwingWorker のスレッドを選択する厳密な方法は指定されていないため、それに依存してはいけません。 Swing を使ってマルチスレッドアプリケーションを記述する場合は、次の 2 つの制約に注意してください (詳細は「How to Use Threads」を参照)。 イベントディスパッチスレッドでは時間のかかるタスクを実行しないようにしてください。アプリケーションが応答しなくなります。 Swing コンポーネントには、イベントディスパッチスレッド上でのみアクセスするようにしてください。 これらの制約があるため、時間のかかる GUI アプリケーションには、1) 時間のかかるタスクを実行するスレッドと、2) GUI 関連のすべての作業を実行するイベントディスパッチスレッド (EDT) の少なくとも 2 つのスレッドが必要になります。このように複数のスレッドを使用する場合はスレッド間通信を行う必要がありますが、..
SwitchPoint SwitchPoint は、状態遷移をほかのスレッドに発行できるオブジェクトです。スイッチポイントは、最初は有効状態になっていますが、いつでも無効状態に変更される可能性があります。無効化を取り消すことはできません。スイッチポイントは、保護対象ペアのメソッドハンドルを組み合わせて 1 つの保護デリゲータを作成できます。保護デリゲータとは、古いメソッドハンドルのいずれかに委譲するようなメソッドハンドルのことです。スイッチポイントの状態によって、2 つのどちらに委譲されるかが決まります。 解説: 無効化の一方向の性質のため、スイッチポイントがいったん hasBeenInvalidated に対して true を返し始めると、以降も常にそうなります。一方、ほかのスレッドから可視の有効なスイッチポイントも、別のスレッドからの要求のためにいつでも無効にされる可能性があります。 無効化はグローバルかつ即時的な処理なので、有効なスイッチポイントでのこのクエリーの実行は、内部的には、無効化の原因となる可能性のあるその他のすべてのスレッドとともに順序付けされる必要があります。したがって、このクエリーのコストは高くなる可能性があり..
SynchronousQueue 各挿入オペレーションが別のスレッドによる対応する削除オペレーションを待機する必要がある (およびその逆の) ブロッキングキューです。同期キューには、内部容量がまったくありません。要素が存在するのは削除しようとするときだけなので、同期キューで peek を実行することはできません。別のスレッドが削除を試みていないかぎり、どのメソッドを使用しても要素を挿入することはできません。反復するものが存在しないため、反復は実行できません。キューの先頭は、挿入処理スレッドがキューに追加しようとする、最初にキューに入れられた要素です。そのようなキューに入れられたスレッドが存在しない場合は、削除できる要素はなく、poll() は null を返します。ほかの Collection メソッド (contains など) の目的のために、SynchronousQueue は空のコレクションとして機能します。このキューでは、null 要素は許可されません。 同期キューは、CSP および Ada で使用されるランデブーチャネルに似ています。これらはハンドオフ設計に最適です。ハンドオフ設計では、情報、イベント、またはタスクを渡すために、あ..
SynthTextFieldUI このメソッドは、レンダリング時にこのスレッドのビューからモデルが変更されないことが保証された状態で、BasicTextUI.paintSafely(java.awt.Graphics) メソッドに送られます (関連付けられたモデルが AbstractDocument から派生している場合)。これにより、モデルは潜在的に非同期で更新されます。
System このメソッドは本質的に安全ではありません。ファイナライザがライブオブジェクトに対して呼び出される結果になる可能性があり、そのときにほかのスレッドがそれらのオブジェクトを並行して操作していると、動作が異常になるか、デッドロックが発生します。 非推奨。 このメソッドは本質的に安全ではありません。ファイナライザがライブオブジェクトに対して呼び出される結果になる可能性があり、そのときにほかのスレッドがそれらのオブジェクトを並行して操作していると、動作が異常になるか、デッドロックが発生します。..
SystemFlavorMap このスレッドの ClassLoader の、デフォルトの FlavorMap を返します。
Templates テンプレートは、並行して動作する複数のスレッドに対して指定されたインスタンスについてスレッドセーフである必要があり、指定されたセッションで複数回使用できます。
TextComponent AWT スレッドモデルの詳細は、「AWT スレッドの問題」を参照してください。
TextField AWT スレッドモデルの詳細は、「AWT スレッドの問題」を参照してください。
Thread スレッドとは、プログラム内での実行スレッドのことです。Java 仮想マシンでは、アプリケーションは並列に実行される複数のスレッドを使用することができます。 各スレッドには優先順位が付けられています。優先順位の高いスレッドは、優先順位の低いスレッドよりも優先して実行されます。さらに、各スレッドがデーモンとしてマークされている場合もあれば、されていない場合もあります。あるスレッドで実行中のコードが新しい Thread オブジェクトを作成すると、この新しいスレッドには、その時点では、作成側のスレッドの優先順位に等しい優先順位が設定され、作成側スレッドがデーモンである場合にだけ、デーモンスレッドになます。 通常、Java 仮想マシンが起動する (一般的にはある指定されたクラスの main という名前が付けられたメソッドを呼び出す) と、デーモンスレッドではないスレッドが 1 つ存在します。Java 仮想マシンは、次のどれかの条件が発生するまでスレッドを実行し続けます。 run メソッドの呼び出しから復帰することによって、または run メソッド以外から送られる例外をスローすることによって、デーモンスレッドではないすべ..
Thread.State スレッドの状態です。スレッドの状態は、次のどれかです。 NEW 起動していないスレッドの状態。 RUNNABLE Java 仮想マシンで実行されているスレッドの状態。 BLOCKED ブロックされ、モニターロックを待機しているスレッドの状態。 WAITING ほかのスレッドが特定のアクションを実行するのを無期限に待機しているスレッドの状態。 TIMED_WAITING 指定された待機時間、ほかのスレッドがアクションを実行するのを待機しているスレッドの状態。 TERMINATED 終了したスレッドの状態。 スレッドは特定の時点で 1 つの状態しか取れません。これらの状態は、オペレーティングシステムのスレッド状態に影響を及ぼさない仮想マシン状態です。 ブロックされ、モニターロックを待機しているスレッドのスレッド状態です。 まだ起動されていないスレッドのスレッド状態です。 実行可能なスレッドのスレッド状態です。 終了したスレッドのスレッド状態です。 指定された待機時間、待機中のスレッドのスレッド状態です。 待機中のスレッドのスレッド状態です。 まだ起動されていないスレッドのスレッド状態です。 実行可能なスレッドのス..
Thread.UncaughtExceptionHandler スレッドグループは、スレッドの集合を表します。さらに、スレッドグループにはほかのスレッドグループが含まれることもあります。スレッドグループはツリーを形成し、最初のスレッドグループを除いてその中で親を持ちます。 スレッドは、それ自体のスレッドグループについての情報にアクセスすることを許可されていますが、そのスレッドグループの親スレッドグループまたはその他のスレッドグループについての情報にアクセスすることはできません。 新しいスレッドグループを構築します。 新しいスレッドグループを作成します。 このスレッドグループとそのサブグループに含まれるアクティブスレッドのおおよその数を返します。 このスレッドグループとそのサブグループに含まれるアクティブグループのおおよその数を返します。 現在実行中のスレッドがこのスレッドグループを変更するアクセス権を持っているかどうかを判定します。 このスレッドグループとそのサブグループのすべてを破棄します。 このスレッドグループとそのサブグループ内の各アクティブスレッドを、指定された配列にコピーします。 このスレッドグループ内の各アクティブスレッドを、指定された配列にコピーします。 こ..
ThreadDeath ThreadDeath のインスタンスは、対象となるスレッド内で (非推奨の) Thread.stop() メソッドが呼び出されたときにスローされます。 アプリケーションは、非同期で終了したあとにクリーンアップを実行しなければならない場合にだけ、このクラスのインスタンスをキャッチするべきです。ThreadDeath がメソッドによってキャッチされる場合は、スレッドが実際に終了するようにふたたびスローし直される必要があります。..
ThreadFactory 要求に応じて新しいスレッドを作成するオブジェクトです。スレッドファクトリを使用すると、new Thread の呼び出しのハードワイヤが削除されるため、アプリケーションで特殊なスレッドサブクラスや優先順位などを使用できるようになります。 Executors.defaultThreadFactory() メソッドはより役立つ、単純な実装を提供し、作成されたスレッドコンテキストに既知の値を設定してから返します。 パラメータ:r - 新しいスレッドインスタンスで実行される runnable 戻り値:構築されたスレッド。スレッド作成要求が拒否された場合は null..
ThreadGroup スレッドグループは、スレッドの集合を表します。さらに、スレッドグループにはほかのスレッドグループが含まれることもあります。スレッドグループはツリーを形成し、最初のスレッドグループを除いてその中で親を持ちます。 スレッドは、それ自体のスレッドグループについての情報にアクセスすることを許可されていますが、そのスレッドグループの親スレッドグループまたはその他のスレッドグループについての情報にアクセスすることはできません。 新しいスレッドグループを構築します。 新しいスレッドグループを作成します。 このスレッドグループとそのサブグループに含まれるアクティブスレッドのおおよその数を返します。 このスレッドグループとそのサブグループに含まれるアクティブグループのおおよその数を返します。 現在実行中のスレッドがこのスレッドグループを変更するアクセス権を持っているかどうかを判定します。 このスレッドグループとそのサブグループのすべてを破棄します。 このスレッドグループとそのサブグループ内の各アクティブスレッドを、指定された配列にコピーします。 このスレッドグループ内の各アクティブスレッドを、指定された配列にコピーします。 こ..
ThreadInfo スレッド情報です。ThreadInfo には、スレッドに関する次の情報があります。 一般的なスレッド情報 スレッド ID スレッドの名前 スレッドの状態。 次の理由でスレッドがブロックされたオブジェクト。 スレッドがブロックされているオブジェクトを所有しているスレッドの ID スレッドのスタックトレース スレッドによってロックされたオブジェクトモニターのリスト。 スレッドによってロックされた所有可能なシンクロナイザのリスト。 スレッドが同期をブロックした、または通知を待機した回数 スレッドコンテンション監視が有効になってから、スレッドが同期をブロックした、または通知を待機した累積経過時間。一部の Java 仮想マシンの実装は、この機能をサポートしていない可能性がある。ThreadMXBean.isThreadContentionMonitoringSupported() メソッドを使って、Java 仮想マシンがこれをサポートしているかどうかを判定できます。 このスレッド情報クラスは、同期制御用ではなく、システムの監視に使用されるよう設計されています。 この ThreadInfo に関連するスレッドが、モニター..
ThreadLocal このクラスはスレッドローカル変数を提供します。これらの変数は、get メソッドまたは set メソッドを使ってアクセスするスレッドがそれぞれ独自に、変数の初期化されたコピーを持つという点で、通常の変数と異なります。通常、ThreadLocal インスタンスは、状態をスレッドに関連付けようとするクラスでの private static フィールドです (ユーザー ID、トランザクション ID など)。 たとえば、次のクラスでは、各スレッドに対してローカルな一意の識別子が生成されます。スレッドの ID は、ThreadId.get() の最初の呼び出し時に割り当てられ、その後の呼び出しで変更されることはありません。 各スレッドは、スレッドが生存していて ThreadLocal インスタンスがアクセス可能である間は、スレッドローカル変数のコピーへの暗黙的な参照を保持します。スレッドが終了すると、スレッドローカルインスタンスのコピーは、すべてガベージコレクトされます (これらのコピーへの参照がほかに存在する場合を除く)。 スレッドローカル変数を作成します。 このスレッドローカル変数の現行スレッドのコピー内の値を返しま..
ThreadLocalRandom 現在のスレッドから独立した隔離された乱数ジェネレータ。Math クラスによって使用されるグローバルな Random ジェネレータと同様に、ThreadLocalRandom は、それ以外では変更できない内部的に生成されたシードで初期化されます。該当する場合、並行プログラム内の共有された Random オブジェクトではなく ThreadLocalRandom を使用すれば、通常、発生するオーバーヘッドや競合がはるかに少なくなります。ThreadLocalRandom の使用は、複数のタスク (たとえば、各 ForkJoinTask) がスレッドプール内で並列に乱数を使用している場合に特に適しています。 このクラスの使用法は通常、ThreadLocalRandom.current().nextX(...) (ここで、X は Int や Long など) の形式にするようにしてください。すべての使用法がこの形式になっていれば、ThreadLocalRandom が複数のスレッド間で誤って共有されることはありえません。 現在のスレッドの ThreadLocalRandom を返します。 戻り値:現在のスレッドの Th..
ThreadMXBean Java 仮想マシンのスレッドシステムの管理インタフェースです。 MBeanServer 内でスレッドシステムの MXBean を一意に識別するための ObjectName は次のとおりです。 スレッド ID スレッド ID は、スレッドの Thread.getId() メソッドの呼び出しにより返された正の long 型の値です。スレッド ID は一意であり、その寿命を通じて変更されることはありません。スレッドが終了すると、スレッド ID は再利用可能です。 このインタフェースの一部のメソッドは、入力パラメータとしてスレッド ID またはスレッド ID の配列を取得してスレッドごとの情報を返します。 スレッド CPU 時間 Java 仮想マシンの実装では、任意のスレッドやスレッド以外について、現在のスレッドの CPU 時間の測定をサポートできます。 isThreadCpuTimeSupported() メソッドを使用すると、Java 仮想マシンで任意のスレッドの CPU 時間を測定できるかどうかを判定できます。isCurrentThreadCpuTimeSupported() メソッドを使用すると、Java ..
ThreadPolicy ThreadPolicy は、作成された POA で使用されるスレッドモデルを示します。デフォルトは、ORB_CTRL_MODEL です。
ThreadPolicyOperations ThreadPolicy は、作成された POA で使用されるスレッドモデルを示します。デフォルトは、ORB_CTRL_MODEL です。
ThreadPolicyValue ThreadPolicyValue には、次の値を指定できます。ORB_CTRL_MODEL - ORB は ORB 制御 POA の要求をスレッドに割り当てます。SINGLE_THREAD_MODEL - 単一スレッド POA の要求が順に処理されます。
ThreadPoolExecutor プールされた複数のスレッドの 1 つを使用して送信された各タスクを実行する ExecutorService です。通常は Executors ファクトリメソッドを使用して構成されます。 スレッドプールでは、2 つの問題に対処します。まず、タスクあたりの呼び出しオーバーヘッドが減少するため、通常は大量の非同期タスクの実行時にパフォーマンスが向上します。また、タスクのコレクションを実行するときに消費されるリソース (スレッドを含む) の境界設定および管理のための方法を提供します。各 ThreadPoolExecutor も基本的な統計情報 (完了したタスクの数など) を保持します。 幅広いコンテキストで有用であるために、このクラスでは多くの調整可能なパラメータや拡張性フックを提供します。ただしプログラマは、より便利な Executors ファクトリメソッドである Executors.newCachedThreadPool() (自動スレッド再生のあるアンバウンド形式のスレッドプール)、Executors.newFixedThreadPool(int) (固定サイズのスレッドプール)、および Executors.n..
ThreadPoolExecutor.CallerRunsPolicy executor がシャットダウンしていない場合に、execute メソッドの呼び出しスレッド内で、拒否されたタスクを直接実行する、拒否されたタスクのハンドラです。シャットダウンしている場合、タスクは破棄されます。 executor がシャットダウンしていない場合に、呼び出し側のスレッドでタスク r を実行します。シャットダウンしている場合、タスクは破棄されます。
Throwable スロー可能オブジェクトには、作成時のそのスレッドの実行スタックのスナップショットが含まれます。これには、エラーについての詳細情報を示すメッセージ文字列を含めることもできます。時間の経過に従い、あるスロー可能オブジェクトがほかのスロー可能オブジェクトの伝播を抑制する可能性があります。最後に、スロー可能オブジェクトには、原因 (このスロー可能オブジェクトが構築される原因となった別のスロー可能オブジェクト) を含めることもできます。この原因情報の記録は例外チェーン機能と呼ばれますが、それは、原因自体に原因がある、といった具合に例外の「チェーン」(各例外がそれぞれ別の例外の原因となる) が形成されるからです。 実行スタックトレースを埋め込みます。このメソッドは、現行スレッドのスタックフレームの現在の状態に関する情報を、この Throwable オブジェクト内に記録します。 この例外を提供する目的で抑制された例外に、指定された例外を追加します。このメソッドはスレッドセーフであり、通常は、try-with-resources 文によって (自動的かつ暗黙的に) 呼び出されます。 抑制された例外が 1 つも存在しないか、抑..
Timer 通知リスナー全部が同じスレッドで実行される可能性があります。ほかのリスナーの処理を妨害したり、fixed-delay 実行の規則性を乱すことがないように、これらのリスナーはすばやく実行する必要があります。NotificationBroadcasterSupport を参照してください。
Timer 通知リスナー全部が同じスレッドで実行される可能性があります。ほかのリスナーの処理を妨害したり、fixed-delay 実行の規則性を乱すことがないように、これらのリスナーはすばやく実行する必要があります。NotificationBroadcasterSupport を参照してください。
Timer 通知リスナー全部が同じスレッドで実行される可能性があります。ほかのリスナーの処理を妨害したり、fixed-delay 実行の規則性を乱すことがないように、これらのリスナーはすばやく実行する必要があります。NotificationBroadcasterSupport を参照してください。
TimerMBean 通知リスナー全部が同じスレッドで実行される可能性があります。ほかのリスナーの処理を妨害したり、fixed-delay 実行の規則性を乱すことがないように、これらのリスナーはすばやく実行する必要があります。NotificationBroadcasterSupport を参照してください。
TimeUnit パラメータ:thread - 待機するスレッドtimeout - 待機する最長時間。ゼロまたはそれより小さい場合は待機しない。
Toolkit イメージデータは別のスレッドで非同期にダウンロードされ、イメージの適切にスケーリングされた画面表現が生成されます。 SecurityException - 印刷ジョブ要求の開始がこのスレッドに許可されていない場合導入されたバージョン: IllegalArgumentException - pageAttributes が異なる前後送りおよび送り解像度を指定した場合。また、このスレッドがファイルシステムにアクセスでき、jobAttributes がファイルへの出力を指定しており、指定された出力先ファイルが次のいずれかである場合: 存在するが通常のファイルではなくてディレクトリである、存在せず作成もできない、または何らかの理由で開くことができない。ただしファイルへの出力では、ダイアログを表示するように要求した場合、ユーザーはファイルを選択して印刷処理を行うことができる。このダイアログにより、選択された出力ファイルがこのメソッドで返す前に有効であることが確認される。 SecurityException - 印刷ジョブ要求の開始がこのスレッドに許可されていない場合、または jobAttributes がファイルへの出..
Transferable DataHandler がオブジェクトを使ってインスタンス化された場合、DataHandler はまずそのオブジェクトの DataContentHandler を捜し出そうとします。この MIME タイプの DataContentHandler が見つからない場合は、UnsupportedDataTypeException をスローします。見つかった場合は、パイプとスレッドを作成します。スレッドは DataContentHandler の writeTo メソッドを使って、ストリームデータをパイプの一端に書き込みます。パイプのもう一端は、呼び出し側に返されます。データをコピーするためにスレッドが作成されるため、コピー時に発生する IOException が呼び出し側に送り返されないことがあります。この場合は、空のストリームが返されます。..
TransferQueue メモリー整合性効果:ほかの並行処理コレクションと同様、オブジェクトを LinkedTransferQueue に配置する前のスレッド内のアクションは、別のスレッドでのその要素へのアクセスまたは LinkedTransferQueue からの削除に続くアクションよりも前に発生します。
Transform このクラスの static メソッドは、スレッドセーフであることが保証されています。このクラスで定義されている static メソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。 しかしこのことは、このクラスで定義されている非 static メソッドには当てはまりません。特定のプロバイダで特に説明がないかぎり、単一の TransformService インスタンスに並行してアクセスする必要のある複数スレッドは、スレッド間で同期を取り、必要に応じてロックしなければいけません。異なる TransformService インスタンスを操作する複数スレッドは、同期化される必要はありません。..
Transformer このクラスのオブジェクトは並行して動作する複数のスレッドで使用することはできません。異なるスレッドでは並行して使用される Transformer も異なります。
TransformerFactory 戻り値:1 つのスレッドで変換を実行するために使用される Transformer オブジェクト。null は不可。 Source を処理して、ソースのコンパイル表現である Templates オブジェクトにします。この Templates オブジェクトは、複数のスレッドで並行して使用することができます。Templates オブジェクトを作成することにより、TransformerFactory は変換命令のパフォーマンスの最適化を詳細に行うことができ、実行時変換が低下することはありません。..
TransformService このクラスの static メソッドは、スレッドセーフであることが保証されています。このクラスで定義されている static メソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。 しかしこのことは、このクラスで定義されている非 static メソッドには当てはまりません。特定のプロバイダで特に説明がないかぎり、単一の TransformService インスタンスに並行してアクセスする必要のある複数スレッドは、スレッド間で同期を取り、必要に応じてロックしなければいけません。異なる TransformService インスタンスを操作する複数スレッドは、同期化される必要はありません。..
TrayIcon AWT スレッドモデルの詳細は、「AWT スレッドの問題」を参照してください。
TreeMap この実装は synchronized されません。複数のスレッドが並行してマップにアクセスし、それらのスレッドの少なくとも 1 つが構造的にマップを変更する場合には、外部で同期をとる必要があります。構造的な変更とは、1 つ以上のマッピングを追加または削除するようなオペレーションです。既存のキーに関連付けられている値を変更する処理は、構造的な変更ではありません。これは通常、マップを自然にカプセル化する一部のオブジェクトで synchronized することによって達成されます。そのようなオブジェクトが存在しない場合は、Collections.synchronizedSortedMap メソッドを使用してマップを「ラップ」することをお勧めします。マップが誤って synchronized なしでアクセスされるのを防ぐために、作成時に行うことをお勧めします。..
TreeSet この実装は synchronized されません。複数のスレッドが並行してツリーセットにアクセスし、それらのスレッドの少なくとも 1 つがセットを変更する場合には、外部で同期をとる必要があります。これは通常、セットを自然にカプセル化する一部のオブジェクトで synchronized することによって達成されます。そのようなオブジェクトが存在しない場合は、Collections.synchronizedSortedSet メソッドを使用してセットを「ラップ」することをお勧めします。セットが誤って synchronized なしでアクセスされるのを防ぐために、作成時に行うことをお勧めします。..
TrustAnchor すべての TrustAnchor オブジェクトは、不変で、スレッドに対して安全である必要があります。つまり、単一の (または複数の) TrustAnchor オブジェクト上で、このクラスに定義されたメソッドを複数のスレッドが同時に呼び出しても、悪影響はありません。TrustAnchor オブジェクトは、不変かつスレッドに対して安全でなければならないので、アクセスの調整を心配することなく、オブジェクトをさまざまなコードに渡すことができます。このことは、このクラスのすべての public フィールドとメソッド、そしてサブクラスで追加またはオーバーライドされた public フィールドとメソッドに当てはまります。..
UIManager 現在のスレッドのコンテキストクラスローダーを使って指定のクラス名で示される LookAndFeel をロードし、setLookAndFeel(LookAndFeel) に渡します。
UndoableEditListener このクラスは、ほかの Swing のクラスとは異なり、スレッドに対して安全です。
UndoManager このクラスは、ほかの Swing のクラスとは異なり、スレッドに対して安全です。
URLClassLoader URLClassLoader のインスタンスを生成したスレッドの AccessControlContext は、そのあとにクラスおよびリソースをロードするときに使われます。 jar: URL および file: URL の場合は、それによって開かれたファイルもすべて閉じられます。close メソッドが呼び出されたときに別のスレッドがクラスをロード中である場合、そのロードの結果は未定義となります。
Validator バリデータオブジェクトはスレッドに対して安全ではなく、再入不可能です。つまり、アプリケーション側で、どのような場合でも 1 つの Validator オブジェクトが複数のスレッドから使用されることがないようにする必要があります。また、validate メソッドが呼び出されている間、アプリケーションは再帰的に validate メソッドを呼び出すことができません。
Validator バリデータオブジェクトはスレッドに対して安全ではなく、再入不可能です。つまり、アプリケーション側で、どのような場合でも 1 つの Validator オブジェクトが複数のスレッドから使用されることがないようにする必要があります。また、validate メソッドが呼び出されている間、アプリケーションは再帰的に validate メソッドを呼び出すことができません。
ValidatorHandler ValidatorHandler オブジェクトはスレッドに対して安全ではなく、再入不可能です。つまり、アプリケーション側で、どのような場合でも 1 つの ValidatorHandler オブジェクトが複数のスレッドから使用されることがないようにする必要があります。
Vector このクラスは、Java 2 プラットフォーム v1.2 の時点で List インタフェースを実装するように改良された結果、Java Collections Framework のメンバーとなりました。新しいコレクションの実装とは異なり、Vector は同期をとります。スレッドセーフな実装が必要ない場合は、Vector の代わりに ArrayList を使用することをお勧めします。
VetoableChangeSupport VetoableChangeSupport インスタンスはスレッドセーフです。
View 本来 View は透明。ビューがその割り当て全体を描画する場合もあるが、通常は描画しない。View 実装のツリーを下位へたどってレンダリングを実行する。各 View はその子のレンダリングを扱う。この動作はスレッドに対する安全性に依存している。ビューの実装にスレッドに対する安全性を考慮する必要がない場合は、同時に使用できるほかのビューの実装が、スレッドに対する安全性を保証するツリートラバーサルに依存する。..
ViewFactory また、JTextComponent に関連付けられた Document が AbstractDocument のサブクラスである場合、このクラスはいくつかの並行サポートも提供します。View または View 階層へのアクセスは、モデルを変更するスレッドと Swing イベントスレッド (レンダリング、モデルとビュー座標変換などを行う) との間で直列化されます。ルートビューにアクセスするときは、最初に AbstractDocument で読み取りロックを獲得して、そのロックを finally ブロックで解放するようにしてください。 このスレッドのビューからモデルが変更されないという保証付きで、安全にインタフェースをペイントします。 このスレッドのビューからモデルが変更されないという保証付きで、安全にインタフェースをペイントします。このメソッドは、後方から前方に向かってレンダリングしながら次のことを実行します。 注:注:また、スーパークラスはバックグラウンドのレンダリングでスレッドセーフではありません。ただし、このことはデフォルトレンダリングでは問題になりません。 インタフェースをペイントします。このメソッドは..
VolatileCallSite VolatileCallSite は、ターゲットの動作が volatile 変数と同じであるような CallSite です。VolatileCallSite にリンクされた invokedynamic 命令は、そのコールサイトターゲットへの更新が別のスレッドで発生した場合でも、その更新を即時に認識します。そうしたスレッド間の緊密な結合のため、パフォーマンス低下が発生する可能性があります。 揮発性コールサイトでは MutableCallSite と違って syncAll 操作が存在しませんが、これは、volatile 変数への書き込みがすべてリーダースレッドに暗黙的に同期されるからです。 特に、現在のスレッドはメモリーからのターゲットの新しい読み取りを発行する必要があり、別のスレッドによるターゲットへの最新の更新を確認する必要があります。 メモリーとの相互作用は、volatile フィールドに書き込みを行う場合と同じです。具体的には、次回の getTarget 呼び出し時に更新後のターゲットを得られることが、すべてのスレッドで保証されます。..
Watchable このインタフェースの実装は不変であり、複数の並行スレッドで安全に使用できます。
WatchEvent 監視イベントは不変であるため、複数の並行スレッドで安全に使用できます。
WatchKey 監視鍵は複数の並行スレッドで安全に使用できます。監視サービスから signalled 状態の鍵を取得するスレッドがいくつか存在する場合は、そのオブジェクトに関するイベントの処理が完了したあとでのみ reset メソッドが呼び出されるように注意してください。これにより、常に 1 つのスレッドが 1 つのオブジェクトに関するイベントを処理するようになります。
WatchService 監視サービスは、複数の並行コンシューマで安全に使用できます。常に特定のオブジェクトのイベントを処理するコンシューマが 1 つのみになるように、その鍵の reset メソッドがそのイベントの処理の完了後にのみ呼び出されるように注意してください。close メソッドは、サービスを閉じるためにいつでも呼び出すことができ、それによって鍵の取得を待機しているスレッドから ClosedWatchServiceException がスローされます。 ファイルシステムはイベントをその取得または処理能力を超える速さで報告する可能性があるため、実装では蓄積できるイベントの数に不特定の制限を課す場合があります。実装では、イベントを故意に破棄する場合、鍵の pollEvents メソッドが OVERFLOW というイベントタイプで要素を返すように調整します。このイベントは、コンシューマがオブジェクトの状態を見直すためにトリガーとして使用できます。 鍵がキューに入れられるのを待機している take または poll メソッドでスレッドが現在ブロックされている場合、それはすぐに ClosedWatchServiceException を..
WeakHashMap WeakHashMap クラスの動作の一部はガベージコレクタのアクションに依存するので、よく知られていても必要ではない、いくつかの Map インバリアントはこのクラスに適しません。ガベージコレクタはキーをいつでも破棄できるので、WeakHashMap は未知のスレッドが通知なしでエントリを削除中であるかのように動作します。特に、WeakHashMap インスタンス上で同期をとり、その変更用メソッドのどれも呼び出さない場合でも、size メソッドはより小さな値を時間の経過とともに返すことがあります。isEmpty メソッドは false を返してから true を返すことがあります。containsKey メソッドは、指定されたキーに対して true を返したあとで false を返すことがあります。get メソッドは、指定されたキーの値を返したあとで null を返すことがあります。put メソッドと remove メソッドは、以前マップにあるように見えたキーに対してそれぞれ null と false を返すことがあります。キーセット、値コレクション、エントリセットを連続して検査すると、出力される要素の数が少..
WebServiceRef WebServiceRef 注釈は、Web サービスへの参照と (オプションで) その注入ターゲットを定義するために使用されます。サービスとプロキシの両方のインスタンスを注入するために使用できます。これらの注入された参照は、スレッドに対して安全ではありません。参照が複数のスレッドからアクセスされた場合、通常の同期技法を使用して、複数のスレッドをサポートできます。
WebServiceRefs サービスとプロキシの両方のインスタンスを注入するために使用できます。これらの注入された参照は、スレッドに対して安全ではありません。参照が複数のスレッドからアクセスされた場合、通常の同期技法を使用して、複数のスレッドをサポートできます。
Window 注:Java 仮想マシン (VM) 内で最後の表示可能なウィンドウが破棄されると、VM が終了することがあります。詳細は、「AWT スレッドの問題」を参照してください。 SecurityException - 呼び出し側スレッドに、指定された exclusionType を持つウィンドウに対してモーダル除外プロパティーを設定するアクセス権がない場合導入されたバージョン: AWT スレッドモデルの詳細は、「AWT スレッドの問題」を参照してください。 SecurityManager がインストールされている場合、呼び出し側スレッドはこのプロパティーの値を設定するために、AWTPermission である「setWindowAlwaysOnTop」が与えられている必要があります。このアクセス権が与えられていない場合、このメソッドは SecurityException をスローし、現在のプロパティーの値は変更されません。 SecurityException - 呼び出し側スレッドに、最前面プロパティーの値を設定するアクセス権がない場合導入されたバージョン:..
WindowConstants 警告: Swing はスレッドに対して安全ではありません。詳細は、「Swing's Threading Policy」を参照してください。
WindowFocusListener AWTEventMulticaster は、java.awt.event パッケージで定義された AWT イベントのための効率的で、スレッドセーフなマルチキャストイベントディスパッチを実装します。
WindowListener AWTEventMulticaster は、java.awt.event パッケージで定義された AWT イベントのための効率的で、スレッドセーフなマルチキャストイベントディスパッチを実装します。
WindowStateListener AWTEventMulticaster は、java.awt.event パッケージで定義された AWT イベントのための効率的で、スレッドセーフなマルチキャストイベントディスパッチを実装します。
Wrapper 現在接続にアクセスしているすべてのスレッドを続行して完了させるか、SQLException をスローさせる。 注:このメソッドは、ネットワークパーティションがソケット読み取りで OS TCP-TIMEOUT (一般に 10 分) まで JDBC 呼び出しを発行するスレッドを絶えずハングアップさせる、めったにないが深刻な状況に対処するためのものです。このメソッドは、JDBC 接続が管理者スレッドにアクセスできる場合に、管理者スレッドに、そのようなスレッドを解放する手段を提供する abort() メソッドに関連しています。setNetworkTimeout メソッドは、管理者スレッドがない場合や、接続にアクセスできない状況に対処します。このメソッドは、その効果が重大であるため、トランザクションタイムアウトなどの通常のタイムアウトの前にトリガーされないように、十分に大きな値を指定してください。..
X509CertSelector 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
X509CRLSelector 特に断らないかぎり、このクラスで定義されているメソッドはスレッドセーフではありません。単一のオブジェクトに並行アクセスする必要のある複数スレッドは、スレッド間で同期をとり、必要に応じてロックする必要があります。複数のスレッドがそれぞれ個別のオブジェクトを処理する場合、それらのスレッドは同期する必要はありません。
XMLSignatureFactory このクラスの static メソッドは、スレッドセーフであることが保証されています。このクラスで定義されている static メソッドは、悪影響を与えることなく、複数スレッドが並行して呼び出すことができます。 しかしこのことは、このクラスで定義されている非 static メソッドには当てはまりません。特定のプロバイダで特に説明がないかぎり、単一の XMLSignatureFactory インスタンスに並行してアクセスする必要のある複数スレッドは、スレッド間で同期を取り、必要に応じてロックしなければいけません。異なる XMLSignatureFactory インスタンスを操作する複数スレッドは、同期化される必要はありません。..
XPath XPath オブジェクトはスレッドに対して安全ではなく、再入不可能です。つまり、アプリケーション側で、どのような場合でも 1 つの XPath オブジェクトが複数のスレッドから使用されることがないようにする必要があります。また、evaluate メソッドが呼び出されている間、アプリケーションは再帰的に evaluate メソッドを呼び出すことができません。
XPathExpression XPath 式はスレッドに対して安全ではなく、再入不可能です。つまり、アプリケーション側で、どのような場合でも 1 つの XPathExpression オブジェクトが複数のスレッドから使用されることがないようにする必要があります。また、evaluate メソッドが呼び出されている間、アプリケーションは再帰的に evaluate メソッドを呼び出すことができません。
XPathFactory XPathFactory クラスはスレッドに対して安全ではありません。つまり、アプリケーション側で、どのような場合も XPathFactory オブジェクトを使用するスレッドが 1 つだけであるようにする必要があります。実装では、メソッドに synchronized のマークを付けて、障害のあるクライアントから保護することをお勧めします。 XPathFactory は再入不可能です。newInstance メソッドの 1 つが呼び出されているときに、アプリケーションは、同じスレッドからであっても、newInstance メソッドを再帰的に呼び出すことはできません。..

Java vs Python
http://blogs.perceptionsystem.com/images/JavaVsPython.png?utm_content=buffer3816a&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

http://blogs.perceptionsystem.com/images/JavaVsPython.png?utm_content=buffer3816a&utm_medium=social&utm_source=twitter.com&utm_campaign=buffer

Java_Platforms.png (8.61 KB) kanata, 03/03/2018 03:52 PM

Add picture from clipboard (Maximum size: 100 MB)