1

ExchangerJavaの並行APIについて読んでいるうちに、クラスについて知りました。

Java ドキュメントから、

"A synchronization point at which threads can pair and swap elements within pairs. Each thread presents some object on entry to the exchange method, matches with a partner thread, and receives its partner's object on return. An Exchanger may be viewed as a bidirectional form of a SynchronousQueue. Exchangers may be useful in applications such as genetic algorithms and pipeline designs."

次のリンクを調べて見つけましたExchanger & GC-less Java

それは言います、

「Exchanger クラスは、Producer/Consumer などの 2 つのスレッド間でデータをやり取りするのに役立ちます。作業を渡すために使用されるデータ構造を自然にリサイクルする特性があり、効率的な方法で GC を使用しない作業の共有をサポートします。」

どのようにサポートし"GC-less sharing of work"ますか?

4

2 に答える 2

1

文字通りサポートされていません。正しく使用して活用できるように設計されているだけです。あなたが言ったように、利点はGCレスの共有作業になります。実際には、一時オブジェクト、交換オブジェクトなどのガベージの作成を回避するためのプログラミング手法にすぎません。このexchangeメソッドは、交換していたオブジェクトを常に返します。したがって、GC を実行する必要はありません。次の交換で古いオブジェクトを再利用できるからです。それ以外の場合、返されたオブジェクトを再利用しない場合、それは still ではありませんGC-less

于 2013-08-21T14:18:25.807 に答える