タグ付けされた質問 「fibers」

7
node.jsでの並行タスクにはどちらが適していますか?繊維?ウェブワーカー?またはスレッド?
私はいつかnode.jsに出会いましたが、とても気に入りました。しかし、すぐに、CPUを集中的に使用するタスクを実行する機能が大幅に不足していることがわかりました。そこで、グーグルを開始し、問題を解決するために次の回答を得ました。ファイバー、ウェブワーカー、スレッド(thread-a-gogo)。どちらを使用するかは混乱であり、そのうちの1つは間違いなく使用する必要があります。結局のところ、IOだけが得意で他には何もないサーバーを用意する目的は何でしょうか。提案が必要です! 更新: 私は遅れている方法を考えていました。それ以上の提案が必要です。さて、私が考えたのはこれです:(thread_a_gogoまたは多分ウェブワーカーを使用して)いくつかのスレッドを作成しましょう。今、それらをさらに必要とする場合、さらに作成することができます。ただし、作成プロセスにはいくつかの制限があります。(システムによって暗示されるわけではありませんが、おそらくオーバーヘッドが原因です)。これで、制限を超えると、新しいノードをフォークして、そのノード上にスレッドを作成し始めることができます。この方法では、制限に達するまで続行できます(結局のところ、プロセスにも大きなオーバーヘッドがあります)。この制限に達すると、タスクのキューイングを開始します。スレッドが解放されるたびに、新しいタスクが割り当てられます。このように、それはスムーズに進むことができます。 それで私はそう思ったのです。このアイデアは良いですか?私はこのすべてのプロセスとスレッドに関するものは少し新しいので、専門知識はありません。ご意見をお聞かせください。 ありがとう。:)

2
なぜ繊維が必要なのですか
ファイバーの場合、古典的な例:フィボナッチ数列の生成 fib = Fiber.new do x, y = 0, 1 loop do Fiber.yield y x,y = y,x+y end end ここにファイバーが必要なのはなぜですか?これを同じProcで書き換えることができます(実際には、クロージャー)。 def clsr x, y = 0, 1 Proc.new do x, y = y, x + y x end end そう 10.times { puts fib.resume } そして prc = clsr 10.times …
100 ruby  lambda  closures  fibers  proc 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.