問題タブ [thread-safety]

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

c# - 自己読み込みキャッシュをロックする

C#で単純なキャッシュを実装し、複数のスレッドからアクセスできるようにしようとしています。基本的な読み取りの場合、それは簡単です。

これは、完全にスレッドセーフだと思います。しかし、それをセルフローディングにしたいのです。つまり、アクセス時にキャッシュにデータが入力されていない場合は、アクセス要求を満たす前にキャッシュにデータが入力されます。

これはスレッドセーフではありません。cacheBがインスタンス化された後、完全に入力される前に、別のスレッドが入力中の場合、スレッドはGetCachedObjBにアクセスする可能性があるためです。では、キャッシュがスレッドセーフになるようにcacheBでロックを実行する最良の方法は何でしょうか。

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

c# - このコードをスレッドセーフにするのを手伝ってください

データの読み込みとフィルタリングをスレッドセーフにするのに少し問題があります。

BackgroundWorker を介してすべてのデータ生成を処理する、コントロールの基本クラスの次のコード。これにより、"this.DataWorker.RunWorkerAsync()" でエラーが発生し、BackgroundWorker がビジー状態であることがわかります。

コードは2 つの可能な場所で呼び出されます。まず、コントロールがオンになっているフォームのタイマーによって:

次に、ユーザーが多数のドロップダウン リストからフィルター オプションを選択すると、次のようになります。

メイン フォームの Timer は 60 秒ごとに実行され、Populate メソッドに true を渡します。reload を true として渡すと、WebService から新しいデータ セットを取得する必要があることが BackgroundWorker に通知されます。

私の知る限り、タイマーが人口イベントを発生させるのとまったく同時にフィルターオプションをクリックすると、エラーが発生します。Populate メソッド、つまりロックに欠けているものがあると思いますが、このインスタンスで正しく使用する方法がわかりません。

コードはユーザー入力に優先されます。ユーザーがフィルター オプションを選択すると、自動更新がブロックされます。自動更新が起動すると、フィルター オプションは一時的に無効になります。それらが同時に発生した場合、ユーザー入力が優先されます (可能な場合)。

誰かが助けてくれることを願っています!

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

multithreading - これは [ThreadStatic] を初期化するスレッドセーフな方法ですか?

前のコードはスレッドセーフですか? それとも、メソッドをロックする必要がありますか?

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

java - JavaReentrantReadWriteLockリクエスト

Sunのドキュメントが明確ではないため、JavaのReadWriteLocks(具体的にはReentrantReadWriteLockの実装)について簡単に質問します。

書き込みロックが別のスレッドによって要求されたときに、読み取りロックがスレッドによって保持されている場合はどうなりますか?書き込みロックスレッドは、現在保持されているすべての読み取りロックが解放されるのを待つ必要がありますか?また、書き込みロックが許可されて解放されるまで、すべての新しい読み取りロック要求はブロックされますか?

ありがとう

0 投票する
6 に答える
20808 参照

c++ - C++ のスレッドセーフな Vector クラス

C ++の迅速で汚いスレッドセーフなベクトルクラスを知っている人はいますか? 私はいくつかのコードをマルチスレッド化していますが、私が抱えている問題はベクトルの使用方法に関連していると思います。コードを書き直す予定ですが、コードをやり直す前に、スレッドセーフなベクトルでテストして確認したいと思います。また、そのようなものがあれば、自分のバージョンを書くよりもはるかに簡単だと思います。

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

python - 静的メソッドとスレッド セーフ

「すべてがオブジェクトである」というこのすべての考えを持つPythonでは、スレッドセーフはどこにありますか?

wsgiを使用してdjango Webサイトを開発しています。また、Linuxでも機能します。私が知っているように、彼らは効果的なプロセス管理を使用しているため、スレッドセーフについてはあまり考えられませんでした. モジュールがどのようにロードされるかについては疑いがありません。関数が静的かどうかは? どの情報も参考になります。

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

python - Pylonsのpylons.requestには何を添付できますか?

Webアプリケーション(Pylonsで記述されている)に接続する各ブラウザーの一意の識別子を追跡したい。これを追跡するためにクライアントにCookieを保持しているが、Cookieが存在しない場合は、応答とともにクライアントに返送される新しい一意の識別子を生成しますが、応答の生成に使用された他のコードからこの値にアクセスしたい場合もあります。

この値をpylons.requestに添付しても安全ですか?または、threading_localを使用してスレッドをローカルにし、新しいリクエストが処理されるたびにリセットするようなことをする必要がありますか?

0 投票する
3 に答える
10200 参照

.net - C#の単純なスレッドセーフなノンブロッキングファイルロガークラス

いくつかの情報をファイルに記録する Web アプリケーションがあります。C# で単純なスレッド セーフなノンブロッキング ファイル ロガー クラスを探しています。スレッドの経験はほとんどありません。log4Net、Enterprise Library Logging Block、ELMAH などの優れたロギング コンポーネントがあることは知っていましたが、アプリケーションを外部に依存させたくありません。このキューの実装を使用することを考えていましたhttp://www.codeproject.com/KB/cpp/lockfreeq.aspx

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

c# - UIスレッドでデリゲートを実行します(メッセージポンプを使用)

外部サービスとの通信を処理するバックグラウンドスレッドがあります。バックグラウンドスレッドがメッセージを受信するたびに、それをUIスレッドに渡して、さらに処理(ユーザーに表示)します。

現在、Timer.Tickに定期的にプールされ、バックグラウンドスレッドに入力されるスレッドセーフなメッセージキューを作成しました。しかし、このソリューションは最適ではありません。

メッセージポンプを使用して、バックグラウンドスレッドからUIスレッドにイベントを渡す方法を知っていますか?