質問

の俳優はとても軽量になり何?

私は、彼らがどのように動作するかさえわかりません。彼らはスレッドを分離していませんか?

役に立ちましたか?

解決

彼らは軽量と言うとき、

彼らは、各アクターがシングルスレッドにマップされていないことを意味します。

  

JVMが持つ共有メモリのスレッドを提供しています   の主な形態としてロック   並行性の抽象化。しかし、共有   メモリのスレッドはかなりヘビー級です   そして、、深刻なパフォーマンスの低下を招きます   文脈からオーバーヘッドを切り替えます。ために   基づいた俳優の実装   JVMスレッドとの1対1のマッピング、   Scalaの俳優あたりのプロセスのペイロード   私たちができることのような軽量ではありません   俳優の百万個のインスタンスを起動   具体的な計算のため。それゆえに   Scalaのアクターはとして設計されています   取得軽量イベントオブジェクト、   スケジュールされたと上で実行   基本となるワーカースレッドプールという   ときにすべて自動的にリサイズされます   スレッドが長時間実行をブロック   オペレーション。実際には、Scalaの実装   俳優の統合モデル - スレッド   ベースとイベントベース。 Scalaの俳優   懸濁液の2つのフォームを提供   メカニズム - フルスタックフレーム   懸濁液(受信として実装)と   継続に基づくサスペンション   クロージャ(反応として実施されます)。に   イベントベースの俳優の場合は、上の待ちます   反応は継続で表されます   閉鎖、キャプチャすなわち閉鎖   俳優の計算の残りの部分。   ときに中断俳優が受け取ります   のいずれかに一致するメッセージ   俳優で指定されたパターン、   継続がスケジューリングによって実行されます   ワーカースレッドの1にタスク   基本的なスレッドプールから。ザ・   で「俳優統一スレッドと   ハラーとOdersky著によるイベント」   の詳細について説明します   実装ます。

ソース

scroll top