問題タブ [queue]

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 投票する
3 に答える
1052 参照

vb.net - VB.NET キュー コンストラクター エラー: キューの成長率は 1 から 10 の間でなければなりません

最初の背景: データの収集/公開に複数の Web サービスを使用して、MS-SQL バックエンドにアクセスする VB.NET 2005 アプリケーション。

エラーについて: クライアントのコンピューターの 1 つでアプリケーションが不思議なことにクラッシュし、オフィスの他のコンピューターでは正常に動作しますが、大きなホイッグスのコンピューターでは動作しません。彼らはコンピューターを交換したため(私が推測するのと同じソフトウェア構成で)、何らかのソフトウェアの競合のように見えますが、エラーは引き続き発生します。現在、このユーザーのセットアップとそのオフィスの他のユーザーのセットアップに既知の違いがあるかどうかについて、IT スタッフからの連絡を待っています。

さらに厄介なのは、アプリが消えてしまうことです。未処理の例外をキャッチしてメッセージを表示するための特定のコードがそこにあるにもかかわらず、エラーメッセージが表示されないため、簡単にデバッグできません。ただ閉じます。

ただし、例外処理コード(少なくとも部分的に) 呼び出されているのは、この次のエラーを正常にログに記録するためです (他の通常のエラーのようにユーザーに表示されないだけです)。

ここで非常に興味深いのは、この時点で実行する必要があるコードでキューをまったく使用していないことです。(ユーザーがアプリを開き、ログインを試みると、エラーが発生します) コード内のどこかで参照される唯一のキューは、社内のテスト モードでのみ実行される非常に特殊な機能にあります。そして、そこには何の問題もありません。

この問題をどこに進めればよいのか途方に暮れているので、ご意見をいただければ幸いです。

編集: わかりました、ようやく彼らの IT 部門と連絡が取れました。私が疑ったように、彼は .NET 2.0 を実行していました。IT 担当者に [プログラムの追加と削除] から .NET インストールを修復してもらったところ、その後、問題はなくなりました。つまり、実際には.NETの問題でした

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

c# - なぜC#でキューがその要素のデータをスクランブルするのですか?

キューがどのように機能するかについて、私は完全に困惑しています。C# でデータを収集して表示する小さなマルチスレッド アプリケーションを作成しようとしています (失敗しています)。Albahari の本
を 読み、Consumer/Producer パターンを使用した後、私のデータがキューでスクランブルされているように見えることを除けば、ほとんどの作業が完了したと彼は説明しています。キューに入る前に、オブジェクトのフィールドには次の値があります

タイムスタンプ = 6
データ[] ={4936、9845、24125、44861}

デキューされた後、データは次のようになります

タイムスタンプ = 6
データ[] = {64791、19466、47772、65405}

デキュー後にデータ フィールドの値が変更される理由がわかりません。私は困惑しているので、誰かがこれを修正する正しい方向に私を向けることができるかどうか、または別の方向に私を向けて先に進むことができるかどうかを確認するために、そこに投げ出すと思いました.


関連コード


データ ストレージ用のカスタム オブジェクト

関連するオブジェクトとフィールド。クラス sensorData は、計算を格納するために使用する別のクラスです。

次のフィールドは、エンキュー スレッドとデキュー スレッド間のキューとシグナルを設定するために使用されます。

Enqueue メソッド/スレッド

これは私のワーカー スレッドで、4 つの正弦曲線を計算し、処理のために結果をキューに入れます。また、結果をファイルに書き込むので、計算結果がわかります。

出力ファイルQueuedDataTest.txtの行の例

6、4936、9845、24125、44861、

Dequeue Data メソッド

このメソッドは、要素をキューから取り出し、ファイルに書き込みます。キューで null 要素が見つかるまで、その時点でジョブが完了します。

データをデキューしてDequeueDataTest.txtに書き込んだ後の出力結果

6、64791、19466、47772、65405、


アップデート 1:

現在のコード内のロックの場所。


ファイルへの書き込みデータをロックするようにコードを編集しました。したがって、私がロックしているコードブロックは次のとおりです。

CalculateAndEnqueueData()メソッドで私が持っている

dequeueDataMethod()には、ロック付きの 2 つの領域があり、最初はここにあります

これは、 ifブロック内のコードのロック ロッカーを想定しています。2番目は、ここでファイルに書き込む場所です

それがすべてです。


0 投票する
7 に答える
14650 参照

c - C で FIFO キューを作成する

2 つのスタックを使用せずに C で FIFO 'スタック' を作成することは可能ですか?

ありがとう!

(前の方に回答してくださった方すみません。LIFOとFIFOの意味で考えていました。)

0 投票する
4 に答える
10137 参照

java - Javaで非同期キューを継続的に処理するための最良の方法は何ですか?

システムの最後の部分を設計する方法を理解するのに苦労しています。現在、クライアントの要求に応答するサーブレットを備えたTomcatサーバーを実行しています。各リクエストは、非同期キューに処理メッセージを追加します(おそらく、SpringまたはAmazon SQS経由でJMSを使用します)。

イベントのシーケンスは次のとおりです。

送信側:
1。クライアント要求を受け取ります
2.この要求に関連するデータを一意のIDでDBに
追加します3.この要求を表すメッセージオブジェクトをメッセージキューに追加します

受信側:
1。キューから新しいメッセージオブジェクトをプルします
。2。オブジェクトをアンラップし、msgオブジェクトに含まれている情報に基づいてWebサイトからいくつかの情報を取得します。
3.電子メールアラートを送信します
。4。このリクエストの操作が完了したという情報でDB行(同じ一意のID)を更新します。

受信側を適切に処理する方法を理解するのに苦労しています。一方では、キュー内の各アイテムを選択して処理するコマンドラインから開始する単純なJavaプログラムを作成できる可能性があります。安全ですか?そのプログラムをTomcatコンテナ内の別のスレッドとして実行する方が理にかなっていますか?これを連続して実行したくはありません。つまり、受信側は、複数のスレッドを使用して、一度に複数のオブジェクトを処理できる必要があります。私はこれを24時間常に実行したいと思っています。

受信側を構築するためのいくつかのオプションは何ですか?

0 投票する
10 に答える
8907 参照

c# - 依存関係のない C# Queue または ServiceBus?

依存関係のない展開を可能にする製品 (理想的にはオープン ソースですが、必須ではありません) はありますか? 私が見つけたすべてのサービス バスまたはキュー ライブラリは、いずれかのキュー アプリ (msmq など) またはデータベースに依存しています。アプリケーションへの参照を追加してビルドし、できるだけ少ない構成でデプロイできる、非常に軽量なソリューションが必要です。

理想的な世界では、キュー/サービス バスが IIS で実行され、Web およびリッチ クライアントが IIS と通信できるようになります。

このようなツールは、ローカルの開発マシンで大規模な分散システムのプロトタイプを迅速に作成するのに理想的です。

0 投票する
4 に答える
2083 参照

c# - 乱数生成による均一な (っぽい) 分布の確保

オブジェクトのリストがあり、ランダムな順序で継続的にオブジェクトにアクセスしたいと考えています。

ランダムな値が常に似ているとは限らないことを保証する方法があるかどうか疑問に思っていました.

例。

私のリストはキューのリストであり、値をインターリーブして、テスト用の実際のシナリオを作成しようとしています。

特に、キュー 1 と 2 のすべてのアイテムを他のアイテムの前に置きたいわけではありません。これを行う保証された方法はありますか?

ありがとう

編集::私が持っているキューのリストは、基本的に、Webサービスに送信しているファイルのリストです。ファイルは特定の順序である必要があるため、キューがあります。

だから私は Queue1 = "set1_1.xml", set1_2.xml", ... "set1_n.xml" Queue2 ... ... QueueN を持っています

各ファイルはキュー内の他のファイルに関して順番に送信する必要がありますが、ファイルが異なるソースから異なる時間に受信され、インターリーブされる現実世界のシミュレーションをシミュレートしたいと思います。

現時点では、次にデキューするファイルを決定するために、0 から (キューの数) までの単純なランドを使用しています。これは機能しますが、キュー 1 と 2 から 50 個のファイルを取得し、キュー 3 から 5 個のファイルを取得するのではなく、もう少し均一性を得るために離れていた可能性があるかどうかを尋ねていました.

ただし、ランダム性を変更してもランダムにならないことは認識しています。

ご回答ありがとうございます。

0 投票する
10 に答える
111163 参照

c# - ブロッキング キューの作成.NETで?

複数のスレッドがキューに追加され、複数のスレッドが同じキューから読み取られるシナリオがあります。キューが特定のサイズに達すると、アイテムがキューから削除されるまで、キューをいっぱいにしているすべてのスレッドが追加時にブロックされます。

以下の解決策は私が現在使用しているものであり、私の質問は次のとおりです。これをどのように改善できますか? 使用する必要がある BCL でこの動作を既に有効にしているオブジェクトはありますか?

0 投票する
12 に答える
48580 参照

c# - c# .NET Queue クラスに Remove(int index) メソッドを追加する

.NET フレームワーク (3.5) で説明されている汎用キュー クラスを使用したいのですが、キューから項目を削除するには Remove(int index) メソッドが必要です。拡張メソッドを使用してこの機能を実現できますか? 誰かが私を正しい方向に向けたいと思っていますか?

0 投票する
4 に答える
34482 参照

c# - C#: オブジェクトがキューに追加されたときにイベントをトリガーする

オブジェクトが に追加されるたびにイベントをトリガーできるようにする必要がありますQueue<Delegate>

拡張する新しいクラスを作成しましたQueue

そして、次のように、別のクラスからイベントを添付します。

しかし、オブジェクト ( ) をキューに入れるたびにeventQueue.Enqueue(something)、添付イベントが発生しません。

ここで何が欠けていますか?

0 投票する
5 に答える
2248 参照

c++ - スレッドセーフキューに問題がありますか?

C++でpthreadを使用してスレッドセーフなキューを作成しようとしています。私のプログラムは93%の時間で動作します。他の7%の時間は、他の人がゴミを吐き出している、または眠りに落ちているようです。コンテキストスイッチがそれを壊すであろう私のキューにいくつかの欠陥があるかどうか疑問に思っていますか?

これは次のように使用できます。

誰かがこれに問題を見つけたら、そう言ってください:)