2016-12-21 9 views
14

Javaで軽量スレッドを作成するためのJSRやその他の重大な取り組みはありますか?ゴランのゴルーチンやアーランのプロセスに似たもの。Javaの軽量スレッドですか?

Javaスレッドは重い重量で知られています。スレッドごとに512〜1024kbのようなものが使用されるので、スレッドの最大数が制限されます。 Javaスレッド間のコンテキスト切り替えには、「長い」時間がかかります。

私は、libとして実装された軽量スレッドであるQuasar "fibers"(http://docs.paralleluniverse.co/quasar/)について聞いたことがあります。彼らは使用するにはややこしいと思われ、多くの関心を引いていない。

理想的には軽量のスレッドをJVMのコアに組み込む必要があります。

+1

スレッドが再利用されるマスターワーカーパターンを考えてみましょうか?おそらくMap ReduceやHazelcastのような分散バージョンですか? – vikingsteve

+0

私は、 1つのWebサーバーが100,000の同時クライアントを処理し、要求ごとに1つの軽量スレッドを保持し、各クライアントの外部システムへの同期呼び出しを行うことができると考えています – DagR

+0

Webサーバーでこれを処理できないようにしてください。ケース100 000の同時クライアントは多くのように聞こえるため、何らかの形でクラスタリングを使用することになります。 – vikingsteve

答えて

3

私は、Javaコミュニティプロセスの途中にあると思われる「軽量」ソリューションについては気づきません。 jepのエントリを参照してください...そのようなことについては何も言及していません。 coroutines年前の要求がありました。そのことはかなり "死んでいる"ように見えます。

今日のは、akkaフレームワークのようなものでしょう。これらのAkkaの俳優はすべて、「軽量スレッド」という言葉で動作します。

+1

Javaの冒頭では、純粋なJVM実装のスレッドであったが、後でカーネルスレッドに置き換えられた "緑のスレッド"がありました。 – DagR

+0

本当に、私はぼんやりとその時代の人たちと多くのトラブルを覚えています。しかし、私は*これらの緑色のスレッドはどちらかというと軽量ではないと思っていますが、他のコメントがあれば、Akkaはあなたにとって良いスタートになると思います。 – GhostCat

+1

ここでは、グリーンとネイティブスレッドについての非常に洞察の深い議論があります:http://softwareengineering.stackexchange.com/questions/120384/why-not-green-threads – DagR

関連する問題