問題タブ [fiber]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
multithreading - 糸と繊維の違いは何ですか?
糸と繊維の違いは何ですか?ruby のファイバーについて聞いたことがありますし、他の言語でも利用できると聞いたことがあります。スレッドとファイバーの違いを簡単な言葉で説明してもらえますか?
c++ - 軽量でポータブルな C++ ファイバー、MIT ライセンス
MITライセンス(またはそれより緩い)で軽量でポータブルなファイバーライブラリを手に入れたいと思います。Boost.Coroutine は適格ではなく (軽量ではない)、Portable Coroutine Library も Kent C++CSP (どちらも GPL) も適格ではありません。
編集:見つけるのを手伝ってくれませんか?:)
ruby - Ruby1.9をShoesで使用するにはどうすればよいですか?
靴はそれ自身のRubyインストールをラップしますよね?
Ruby1.9の機能であるFiberが使えません。そして、ジェネレーターを作成するためにファイバーを使用したいと思います。
これが私のコードです(問題が私のコードにないことを確認できます):
そして、私がこのような靴アプリを作った場合:
靴のコンソールを引き上げると、次のエラーが表示されます。
ファイバーは初期化されていない定数であると言っているので、私のコードに何か問題があるか、このRubyバージョンはファイバークラスを認識していません-後者が当てはまるはずです。
Rubyのバージョン(私のMacインストールでは1.8)を決定する際にこの質問を見ましたが、バージョンを変更する方法がわかりません。
ruby - 列挙子はRuby1.9.1でどのように機能しますか?
この質問は、Ruby 1.9.1で列挙子を使用する方法についてではなく、それらがどのように機能するのか興味があります。ここにいくつかのコードがあります:
上記のコードでは、、、e = Bunk.new.each
次にe.next
、e.next
を使用して連続する各要素を取得できますが、実行を一時停止してから適切な場所で再開するのはどの程度正確ですか?
の歩留まりをに0.upto
置き換えるとFiber.yield
わかりやすいと思いますが、ここではそうではありません。それは昔ながらのことですが、yield
どのように機能しますか?
enumerator.cを見ましたが、私には理解できないほどです。たぶん誰かが、1.8.6スタイルの継続ベースの列挙子ではなく、ファイバーを使用してRubyで実装を提供することができます。これにより、すべてが明確になりますか?
c# - C#のファイバー:イテレーターよりも高速で、人々はそれらを使用しましたか?
そこで、私は同僚とファイバーについてチャットしていて、ファイバーAPIを使用したC#でのコルーチンの実装について説明している2003年の論文を発表しました。
このホワイトペーパーでの実装はYield
.NET1.1用であったため、.NET2.0yield return
に登場した構文よりも前のものです。
一見すると、ここでの実装は潜在的に高速であり、複数のCPU間でかなりうまく拡張できるように見えます。
誰かがそれを使用しましたか?
c# - .net にファイバー API はありますか?
何よりも好奇心から、ファイバー/コルーチン ( win32 バージョン) をサポートする C#/.net クラスのセットを探していましたが、運がありませんでした。
そのような獣を知っている人はいますか?
network-programming - ファイバー/コルーチンをサポートするスクリプト言語は?
ファイバー、別名コルーチン、別名ユーザー モード スレッドを介した同時実行性をサポートする言語で、新しいネットワーク サーバー プロジェクトを開始したいと考えています。「コルーチン」という用語はさまざまなことを意味するために非常に大まかに使用されているようであり、「ファイバー」はほぼ独占的に Win32 API に関して使用されているため、私のオプションが何であるかを正確に判断することは非常に困難でした。
この質問の目的のために、コルーチン/ファイバー:
- ネストされた関数内から呼び出し元の関数に結果を与えることによって実行を一時停止するメソッドをサポートする (つまり、コルーチン/ファイバーが呼び出されたコール スタックの任意の深さ)
- 現在の実行時点で別の任意のコルーチンに制御を移すことをサポートします (つまり、コルーチンを呼び出さなかったコルーチンに譲ります)
言語オプションは何ですか? Ruby 1.9 と Perl (Coro) の両方がサポートされていることは知っていますが、他に何がありますか? 成熟した gc と動的メソッド呼び出しを備えたもので十分です。
ruby - 複数の HTTP リクエストを非同期に行う
このコードは同期スタイルで動作します。最初のリクエスト、2 番目、3 番目。すべてのリクエストを非同期で送信し、すべてが完了したら印刷したいと思いますurls
。
それを行う最良の方法は何ですか?ファイバーはそれに適していますか?
c# - C#のコルーチン
私はc#でコルーチン(ユーザーがスケジュールしたスレッド)を実装する方法を探しています。C ++を使用するとき、私はファイバーを使用していました。インターネットでは、C#にはファイバーが存在しないことがわかります。同様の機能を取得したいのですが。
C#でコルーチンを実装する「正しい」方法はありますか?
コルーチンごとにこのミューテックスを解放するスケジューラスレッドで単一の実行ミューテックス+1を取得するスレッドを使用してこれを実装することを考えました。しかし、これは非常にコストがかかるようです(各コルーチン間でコンテキストスイッチを強制します)
イールドイテレータ機能も見てきましたが、私が理解しているように、内部関数内ではイールドできません(元のイテレータ関数でのみ)。だから、これは私には少し良いことです。
concurrency - 舞台裏の Erlang プロセスとは?
私は Erlang について非常に限られた知識しか持っていませんが、理解している限り、非常に低コストで「プロセス」を生成できます。
では、舞台裏の「プロセス」とは何なのだろうか。
彼らは繊維ですか?スレッド?継続?