fiber

    4

    1答えて

    私はファイバごとに独立したスタックが割り当てられ、ソース・コンテキスト・スタックに格納され、ターゲット・スタックからポップされます。それはうまく動作しますが、少し問題が発生しました: ファイバー内で作業するにはSEHが必要です(ファイバーの最後のスタックフレームまで例外が処理されなかった場合は、プログラムが終了したり、奇妙なことが起きても大丈夫です。されません)。コンテキスト切り替え中にFS:[0

    7

    3答えて

    私はfibersについて同僚とチャットしており、Fiber APIを使用してC#でコルーチンの実装を記述したthis paper from 2003となっています。 このホワイトペーパーのYieldの実装は、.NET 1.1用であったため、.NET 2.0に登場するyield returnの構文よりも前です。 ここでの実装は潜在的に高速で、複数のCPUにまたがって拡張できることは間違いなく一目瞭然

    2

    2答えて

    私はruby threads/fiberがIOを1.9でブロックしていると読んでいます。これは本当ですか、それは本当に何を意味していますか?私はいくつかのネット/ httpのものを複数のスレッドで行う場合、その要求に対して与えられた時間に実行されるスレッドは1つだけですか? ありがとう

    5

    1答えて

    私はruby1.9.2p180(2011-02-18 revision 30909)i686-linuxを使用しています。未定義のエラーが返されますFiber#alive?: fiber = Fiber.new{puts 'hello'} fiber.alive? => undefined error 他の方法を、例えば、Fiber#resume、Fiber.yieldは正常に動作している

    7

    4答えて

    この質問は、Ruby 1.9.1で列挙子を使用する方法ではなく、どのように動作するのか不思議です。ここではいくつかのコードは次のとおりです。上記のコードで class Bunk def initialize @h = [*1..100] end def each if !block_given? enum_for(:each)

    10

    4答えて

    MITライセンス(またはより緩い)の軽量でポータブルなファイバーlibを入手したいと思います。 Boost.Coroutineは、軽量ではなく、Portable Coroutine LibraryやKent C++ CSP(どちらもGPL)のどちらにも適合しません。 編集:見つけてもらえますか? :)