問題タブ [atomic]
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.
java - AtomicIntegerlazySet対セット
lazySet
とのset
方法の違いは何AtomicInteger
ですか?ドキュメントには、次のことについて多くのことを言うことはありませんlazySet
。
最終的には指定された値に設定されます。
保存された値はすぐに目的の値に設定されるのではなく、将来的に設定されるようにスケジュールされているようです。しかし、この方法の実際の使用法は何ですか?例はありますか?
assembly - ハードウェアとソフトウェアの割り込みを無効にする
ASM/C/C++ プログラムですべての割り込みを無効にして、プロセッサを完全に制御することはできますか?
はいの場合 -> どうやって?
そうでない場合 -> 「アトミック」オペレーション システム コールはどのように機能しますか (たとえば、クリティカル セクションに入る)。
ご協力いただきありがとうございます!
performance - x86/x86_64 で 16 ビット カウンターをアトミックにインクリメントできますか?
既存の 32 ビット カウンターを 16 ビット カウンターに変換してメモリを節約したいと考えています。このカウンターは、アトミックにインクリメント/デクリメントされます。私がこれを行う場合:
- x86/x86_64 での atom_inc(uint16_t x) にはどの命令を使用しますか?
- これは、マルチプロセッサ x86/x86_64 マシンで信頼できますか?
- これを行うために、これらのアーキテクチャのいずれかに支払うパフォーマンスのペナルティはありますか?
- (3) で「はい」の場合、予想されるパフォーマンスの低下はどれくらいですか?
コメントしてくれてありがとう!
c - C のビットフィールド マスク
コンパイル時にビットフィールドのマスクを見つけるための C での移植可能な方法はありますか?
理想的には、次のようなフィールドをアトミックにクリアできるようにしたいと考えています。
それ以外の場合は、構造体のロックを解除する必要があります。これは、私が望むよりも重いものです。
ado.net - ADO.NET でのデータ アダプターの原子性
私は ADO.NET が初めてで、それを学んでいます。ADO.NET のデータ アダプターは、データ セットにデータを入力してデータベースを更新するときに、原子性または ACID プロパティを単独で提供するのか、それともトランザクションを明示的に使用してこれを実現する必要があるのか疑問に思っていました。
まあ言ってみれば:
- データ アダプターを介してデータベースからデータ セットにデータを取得したい
- Web サイトに情報を送信する
- データセットのデータに変更を加える
- DataAdapter.Update(DataSet) を使用してデータベースを更新する
すべてのステップ (一度に取得できるオフライン データになるため、必要に応じて最初のステップを除外できます) をアトミックに一度に実行したいのですが、トランザクションが必要ですか? そうでない場合、これを達成する方法は?
multithreading - アトミック操作は、スレッド間で行うのと同じようにプロセス間で機能しますか?
明らかに、アトミック操作により、異なるスレッドが値を上書きしないことが保証されます。しかし、共有メモリを使用する場合、これはプロセス間でも当てはまりますか? プロセスがOSによって異なるコアで実行されるようにスケジュールされている場合でも? それとも、異なる異なる CPU 間ですか?
編集:また、安全でない場合は、スケジューラの観点からプロセスとスレッドが同じであるLinuxのようなオペレーティングシステムでも安全ではありませんか?
multithreading - ロックフリーのデータ構造が相互排除 (ミューテックス) よりもパフォーマンスが低いのはいつですか?
ロックフリーのデータ構造が「特定のワークロードに対して」より効率的であることをどこかで読みました(もうページが見つかりません)。アトミック操作を実行するためのロック命令の約 100 サイクルのヒットは、スリープしてスケジューラがプロセスを復帰させるのを待つよりもはるかに高速に聞こえるため、ロックフリーのデータ構造がどのような状況下にあるかは明らかではありません。昔ながらのミューテックスよりも好ましくないでしょう。ロックが 99% の時間利用可能で、プロセスがスリープ状態になる必要がない場合、ミューテックスの方が高速ですか? 適切なロックのないデータ構造が利用可能であると仮定して、どちらに進むべきかを知るための良い経験則はありますか?
multithreading - 最新の CPU でマルチスレッドが依然として懸念される場合、値は部分的に更新されますか?
Read-Copy-Update に関するウィキペディアの記事から:
削除フェーズをリーダーと同時に実行しても安全である理由は、最新の CPU のセマンティクスにより、部分的に更新された参照ではなく、古いバージョンまたは新しいバージョンのデータ構造がリーダーに表示されることが保証されているためです。
これは最新のすべての CPU (ARM、x86、PPC など) に当てはまりますか? 今後変更される可能性はありますか?古い値を再び取得する可能性を気にしない限り、ロックされたロードを実行するコストを支払う必要がないことは非常に素晴らしいようです (これはおそらく多くのアプリケーションにとって問題ではありません-基本的に使用できるすべてのアプリにとって)読み取り-コピー-更新)。
svn - Subversion でのアトミック コミットの価値は何ですか?
バージョン管理のベスト プラクティスを作成して従おうとしていますが、Subversion のアトミック コミットへの参照に出会いました。このアクションについて聞いたことがないので、いくつか質問があります。
- その目的は何ですか?
- いつ使用する必要がありますか?
- 通常のコミットとどう違うのですか?
- TortoiseSVNユーザーは利用できますか? もしそうなら、どのように?