問題タブ [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.

0 投票する
1 に答える
1297 参照

c - Mac OS は Windows ファイバー API に相当しますか?

私は好奇心からこれを尋ねています。

Windows は、ファイバーAPIと呼ばれるものを提供します。これは、軽量のユーザー プロセス/スレッド用の API です。

Mac OS にもそのような機能があるか知りたいと思っていました。私の知る限り、これに最も近い Unixsetcontextは関数のファミリーです。ただし、Mac プログラムでそのような API を呼び出そうとすると、OSX 10.6 以降、関数が非推奨になっているという警告が表示されます。また、上記のウィキペディアのリンクで提供されている例をコンパイルして実行しようとすると、最初に自分のマシンで seg fault が発生しswapcontextます。

そのため、明らかにsetcontextAPI は Mac には適していません。少なくとも、もはやそうではありません。Mac OS で軽量のユーザー側スレッドを実現する他の方法はありますか? システムはそのような機能を提供しますか?

0 投票する
2 に答える
556 参照

c++ - なぜブースト::ファイバーブロック?

boost::fiberライブラリを使用しようとしていますが、「Hello, World」の例に問題があります。次のコードでは、ファイバーが終了した後にプログラム フローがブロックされ、メイン関数が返されません。

結果は次のとおりです。

加入前。
こんにちは、ブースト::ファイバー

私は、 boost::fiberの現在の開発ブランチを、modular-boostの現在の開発ブランチでビルドしました。この動作は現在の実装のバグですか、それとも私の使用法に問題がありますか?

0 投票する
1 に答える
213 参照

c# - 排他ロック対スレッドファイバー

私は現在、マルチプレイヤー ゲームのサーバー側として機能する c# アプリケーションに取り組んでおり、マルチスレッドの問題をどのように処理する必要があるかについて少し確信が持てません。先に進む前に、私がこのトピックにまったく慣れていないことを言及しておく価値があるでしょう。

問題

サーバー側アプリケーションの要件の 1 つは、サーバーに接続しているピアに関する情報やその場所など、アプリケーション固有のデータを含める必要があることです。問題は、なんらかの形式のスレッドセーフなメカニズムがないと、2 つの要求が同じデータの読み取りと書き込みを行う可能性があることです。これは明らかに問題です。

問題を解決する

これまで、この問題を解決するために、すべてのリクエストをロック ブロック内にラップし、すべてのリクエストが順番に発生するようにして、データが一度に 1 つのピアによってのみ操作されるようにしていました。

最近、このトピックについていくつかの調査を行った後、ファイバーのアイデアと、「ファイバープール」を設定する方法を紹介されました。これにより、リクエストが確実に発生するようにする別の方法として、単一のファイバーにアクションをキューに入れることができますシリアル順で。

質問

スレッドとこれらのタイプのトピックに関する私の知識はかなり限られています。このトピックについてもっと知りたいです。特に、どちらのソリューションの長所と短所、そして最終的にどのルートを取るべきかを知りたい.

どんな助けでも大歓迎です。

0 投票する
1 に答える
2527 参照

meteor - Email.send の呼び出し後、Meteor [エラー: ファイバーがないと待てない]

タイムアウト後に電子メールを送信するために、Meteor を使用して非常に単純なサーバーを作成しました。タイムアウトを使用すると、メッセージは正常に送信されますが、エラーがスローされます: [Error: Can't wait without a fiber].

これが私のコードです:

Meteor.wrapAsyncファイバーの作成に使用できることを理解しています。ただしwrapAsync、呼び出すコールバックがあることを期待しており、コールバックをEmail.send使用していません。

エラーを取り除くにはどうすればよいですか?

0 投票する
1 に答える
169 参照

serialization - Meteor/Fibers - Meteor.call コールバックの使用方法は?

クライアントから Meteor メソッドを呼び出し、コールバックで結果を期待するこのコードがあります。このresultsオブジェクトは、サーバーのコンソールから文字列化して出力できる整形式のオブジェクトです。

このコードを実行すると、有効な結果とエラーなしで、コールバックはクライアントで呼び出されません。ただし、 で置き換えるfut.return(results)fut.return(JSON.parse(JSON.stringify(results)))、コールバックが呼び出され、クライアントで「文字列」が取得されます。文字列を返すことができるのにオブジェクトを返すことができない理由は何ですか?

サーバー コード (内Meteor.Methods()):

クライアント:

ここでの編集 は、「結果」として渡そうとしている Json です。