問題タブ [synclock]
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.
vb.net - SyncRootのSyncLock
同期キューを作成し、Enqueue / Dequeueメソッドを呼び出すときに、そのキューのSyncRootプロパティでSyncLockを使用しています。メソッドは、標準のプロデューサー/コンシューマークラスのインスタンスから呼び出されます。
それはSyncRootプロパティの適切な使用ですか?
各クラスにプライベート共有オブジェクトを作成し、代わりにそれをロックする方がよいでしょうか?
あなたの理由を説明してください。
.net - 頻繁なファイル I/O 操作を SyncLock ブロック内に配置するのは悪い考えですか?
これを行うコードがあるとします:
まず第一に、SyncLock 内に Try/Catch/Finally ブロックがあるのは問題ですか?
2 番目に、このコードがイベントで、短い時間枠内で何度も実行される可能性があるとします。たとえば、1 秒間に 10 回実行されます。このように SyncLock を使用しても問題ありませんか、それとも Queue に行を追加してから、たとえば 1 秒ごとにオフになるタイマーで Queue からすべての行をファイルに書き込む方が理にかなっていますか?
jquery - jQuery Ajax SyncLock
ユーザーが jQuery の $.ajax でコンテンツをロードするためにクリックできるボタンがいくつかあります。すべてのボタンがコンテンツを同じ div タグにロードします。問題は、ユーザーがすばやく複数回クリックすると、正しいコンテンツに到達する前にコンテンツが数回フラッシュする可能性があることです。
これにはどのような回避策がありますか? 私は.netのSyncLock機能に似たものを考えていましたが、javascript/jQuery. 理想的な解決策は、現在キューにあるリクエストをキャンセルして、新しいリクエストを開始することです。
注意すべきことの 1 つは、複数の無関係な ajax リクエストが進行している可能性があるため、すべてのリクエストをクリアすることはできず、この 1 つの div タグに関連するリクエストだけをクリアできないことです。
.net - Interlocked クラスが利用できるのに、簡単な操作のために .NET で SyncLocks を使用するのはなぜですか?
私はしばらく VB.NET で単純なマルチスレッドを行ってきましたが、初めての大規模なマルチスレッド プロジェクトに取り掛かりました。Synclock
より良い方法があるとは思わなかったので、私は常にステートメントを使用してすべてを行ってきました。
Classについて学んだばかりですInterlocked
- それはすべてこのように見えます:
次の 1 つのステートメントに置き換えることができます。
これにより、すべてのロックが内部で処理され、番号が変更されます。これは、単純な操作に対して独自のロックを作成するよりもはるかに簡単です (長時間実行される操作やより複雑な操作には、明らかに独自のロックが必要です)。
メソッドを使用して同じことを達成できるのに、専用のロックオブジェクトを使用して独自のロックをロールする理由はありInterlocked
ますか?
vb.net - 「Synclock syncroot」と「SyncLock Me」の違いは何ですか?
vb.Net マルチスレッドの質問:
違いは何ですか
-と-
c# - 静的メソッドで lock(syncRoot) はどのように意味がありますか?
次のコードは、MS が新しい Security Token Service Web サイトを作成するために使用する (Windows Identity Foundation SDK) テンプレートから抜粋したものです。
私はマルチスレッドプログラミングに比較的慣れていません。このステートメントの理由は、lock
2 つの Web 要求が Web サイトに同時に到着した場合に、このコードをスレッドセーフにするためだと思います。
lock (syncRoot)
ただし、このメソッドが動作している現在のインスタンスを参照しているため、使用は意味がないと思ってsyncRoot
いました...しかし、これは静的メソッドです!
これはどのように理にかなっていますか?
.net - ShowDialogが戻るのを待っている間、コードのセクションを同期ロックします
外部プログラムからの応答を待っている間に、コードのセクションからアプリケーションをロックアウトする方法を理解するのに問題があります
式にオブジェクトが含まれるSynclock
コードのセクションで使用しました。Me
これでは、タイムアウトパラメータを持つダイアログボックスのSynclock
オーバーライドされたメソッドを呼び出しますが、タイマーが設定されると、基になる関数呼び出しから値を返します。このように動作します。ShowDialog
ShowDialog
これで、外部プログラムがアプリケーションをこれに導くイベントを発生させる可能性がありますが、関数が値を返さない場合でも(したがって、コードのセクションがロックされたままになると思った場合でも)、アプリケーションがアプリケーションにSynclock
入るのを妨げることはありません。ShowDialog
プログラムのロックに使用されるオブジェクトのインスタンスは1つだけです。
あなたの助けは大歓迎です。
.net - 2 つのオブジェクトの SyncLock
aとbの2 つのオブジェクトがあるとします。
両方のオブジェクトを SyncLock したい。
これは実現可能ですか?ネストされた SyncLock ステートメントで実行できますか? そのような操作の危険性は何ですか?
編集
おそらく、デッドロックを回避するためにリファクタリングするにはどうすればよいでしょうか?
vb.net - .NET SyncLock オーダーのデッドロック
2 つの Synclock がある場合
私が持っていない場合、私はデッドロックの危険にさらされていますか
私のコードでは、ランダムに a または b で synclock を実行しますか?
time - GPS時計の精度は?
私の会社には、正確な時間を必要とする重要なシステムがあります。
そのため、GPS 衛星から時刻を受信する屋外 GPS アンテナを備えた NTP サーバー アプライアンスがあります。
私の質問は次のとおりです。
- 時計の精度はどれくらいですか?
- この方法を維持するか、別の外部 NTP (US-GOV、NASA など) を使用する価値はありますか?
ありがとう、