3

java.util.concurrentパッケージの API ドキュメントを読みました。

そこでは「並行」と「スレッドセーフ」が同義語として使われている印象があります。

例:

ConcurrentLinkedDeque -リンクされたノードに基づく無制限の同時両端キュー。ConcurrentLinkedQueue -リンクされたノードに基づく無制限のスレッドセーフなキュー。

同時実行パッケージの範囲内で、スレッドセーフ同時実行という言葉遣いは同じ意味であると想定できますか?

4

3 に答える 3

3

はい ... 並行パッケージ内のすべてを異なるスレッドから並行して使用できます。たとえば、スレッドセーフです。

具体的には、リンク先のページの「同時コレクション」セクションの下で:

並行コレクションはスレッドセーフですが、単一の排他ロックによって制御されません。

それは別として...パッケージの全体的な目的は、java.util.concurrent.*並行(マルチスレッド)プログラミング用のツールを提供することです。

参照: Oracle の Java チュートリアル。同時実行

于 2013-06-29T02:11:56.043 に答える
1

この文脈では、それは「(同期を使用するスタックなどの他の古いコレクションとは異なり)非ブロックであり、同時アクセスにより適しているスレッドセーフなコレクション」を意味すると思います。

于 2013-06-29T02:21:33.800 に答える
0

ConcurrentLinkedQueueドキュメントを見たところ、次のように書かれています。

[...] 他の同時収集と同様に [...]

それはまた言います:

[...] リンクされたノードに基づく無制限のスレッドセーフなキュー。

CLQ はスレッドセーフであり、「他の同時実行コレクション」と比較されているため、実際には同義的に使用されていると想定できると思います。

これを確認する唯一の方法は、Java ディストリビューションのソースを調べることです。

于 2013-06-29T02:14:35.487 に答える