-1

react私は関数型言語 (Scala) の学習を始めたばかりで、マルチスレッドの実行中に「代わりにrecieve」メソッドを使用するようにしてくださいという主張/推奨事項の 1 つがあります。明確にするために、react値を返しませんが、値を返しますrecieve。彼らには、この推奨事項を支持する独自の理由があります。Scala は JVM で動作します。JavaCallableで使用するよりも使用するほうがコストがかかるのではないかと考えてしまいますか?Runnable

誰かが同じ経験をしたり、これについてコメントしたりしていますか?

4

2 に答える 2

3

Runnable と Callback は単なるInterfacesであるため、同じ「パフォーマンス」を持っています。

2 つのインターフェースには、わずかな API の違いがあります。使用する API と互換性のあるタイプを使用する必要があります。それだけです。

これはScalaとは何の関係もありません。質問ボックス自体が間違ったコーナーに移動します。

于 2013-06-25T04:42:37.573 に答える
2

さて、あなたは本当にここでさまざまな概念を混ぜ合わせています。

reactの代わりに使用する理由receiveは、 を持つ各アクターがreceive独自のスレッドを必要とするためです。したがって、アクターごとに 1 つのスレッドがあります。 react一方、そのアクターでそのメッセージを実行し、次のアクターとメッセージに進むスレッドのプールによって処理されます。(これは、実際に反応することを許可するだけです。一定の時間待つことはできません。)

一方、RunnableおよびCallableインターフェースは、Java でコードをパッケージ化する方法にすぎず、単に何かを実行する ( Runnable) か、値を返す ( )かによって異なりますCallable。インターフェイス自体にはパフォーマンスの違いはありませんが、Callable戻り値を返すために発生する必要がある追加のことがあります。そのため、どちらの方法でも記述できる場合は、のみが必要Runnableです。(実際には、これはおそらくフューチャーではなくスレッドを開始することを意味します。) しかし、実装の詳細は非常に重要であるため、インターフェイスだけに基づいて一般的な推奨事項を実際に作成することはできません。呼び出している実際のクラスでインターフェイスが実際にどのように使用されているかを知る必要があります。

于 2013-06-25T05:05:57.307 に答える