問題タブ [multithreading]

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

multithreading - 複数のスレッドが同じ変数に同じ値を書き込んでも大丈夫ですか?

競合状態と、複数のスレッドが同じ変数にアクセスしている場合、あるスレッドによって行われた更新が無視され、他のスレッドによって上書きされる可能性があることを理解していますが、各スレッドが同じ値 (異なる値ではない) を同じ変数に書き込んでいる場合はどうでしょうか。これでも問題を引き起こす可能性がありますか?このコードは:

GlobalVar.property = 11;

(そのプロパティが 11 以外に割り当てられることはないと仮定すると)、複数のスレッドが同時にそれを実行すると問題が発生しますか?

0 投票する
11 に答える
96751 参照

c# - C# で volatile キーワードを使用する必要があるのはいつですか?

C# の volatile キーワードの説明を誰かが提供できますか? どの問題が解決され、どの問題が解決されないか? ロックを使用しなくても済むのはどのような場合ですか?

0 投票する
8 に答える
37087 参照

c - ノンブロッキング pthread_join

マルチスレッド サーバーのシャットダウンをコーディングしています。すべてがうまくいけば、すべてのスレッドが独自に終了しますが、スレッドがスタックする可能性がわずかにあります。この場合、非ブロック結合があると便利です。だから私はすることができました。

ノンブロッキングの pthread_join を行う方法はありますか? ある種の時限参加も良いでしょう。

このようなもの:

ノンブロッキング結合が役立つケースは他にもあると思います。

そのような関数はないように思われるので、既に回避策をコーディングしましたが、私が望むほど単純ではありません。

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

algorithm - マルチスレッドアルゴリズムの正当性の証明

マルチスレッドアルゴリズムは、設計/デバッグ/証明が特に困難です。デッカーのアルゴリズムは、正しい同期アルゴリズムを設計することがいかに難しいかを示す代表的な例です。タネンバウムの最新のオペレーティングシステムは、IPCセクションの例でいっぱいです。誰かがこれについての良い参考文献(本、記事)を持っていますか?ありがとう!

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

java - syncExec から変数を返す最良の方法は何ですか?

私の SWT Java アプリでは、Display.syncExec() 呼び出し内から情報を返したいことがよくあります。これを行うためにこれまでに見つけた最良の方法は次のとおりです。

ArrayList はスレッドセーフであるため、これは許可されていると思いますが、使用する必要があるより良いコンテナー、または完全に簡単な方法はありますか?

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

multithreading - Windows ミニダンプのスタックの解釈

コンピューターのデバッグの複雑さを学び始めたばかりの人間として、Windbg でダンプのスタック テキストを読み取る方法を一生理解できません。それらをどのように解釈するか、またはどのようにそれを行うかについて、どこから始めればよいかわかりません。この哀れな魂に道を教えてくれる人はいますか?

すなわち(私が実際に手元に持っている唯一のダンプ)

問題が Nvidia ディスプレイ ドライバに関係していることはわかっていますが、知りたいのは実際にスタックを読み取る方法です (たとえば、b69dd8f4 とは何ですか?) :-[

0 投票する
13 に答える
18941 参照

c - C/Pthreads の使用: 共有変数は揮発性である必要がありますか?

C プログラミング言語と、スレッド化ライブラリとしての Pthreads。スレッド間で共有される変数/構造体は揮発性として宣言する必要がありますか? それらがロックによって保護されているかどうか(おそらくバリア)であると仮定します。

pthread POSIX標準はこれについて発言権を持っていますか、これはコンパイラに依存していますか、それともどちらでもありませんか?

編集して追加: 素晴らしい回答をありがとう。しかし、ロックを使用していない場合はどうでしょう。たとえば、バリアを使用している場合はどうなりますか? または、コンペアアンドスワップなどのプリミティブを使用して共有変数を直接かつアトミックに変更するコード...

0 投票する
8 に答える
27661 参照

c - 64ビット書き込みがアトミックであることを保証する方法は?

Intel x86 ベースのプラットフォーム (特に、Intel コンパイラを使用して MacOSX 10.4 を実行している Intel ベースの Mac) で C でプログラミングする場合、64 ビット書き込みがアトミックであることが保証されるのはいつですか? 例えば:

y への最初の代入の実行が終了した後に別のスレッドが y の値を調べている場合、値 0xfedcba87654321 または値 0x12345678abcdef のいずれかが表示され、それらの混合ではないようにしたいと考えています。ロックせずに、可能であれば余分なコードなしでこれを行いたいと思います。私の希望は、64 ビット コードをサポートできるオペレーティング システム (MacOSX 10.4) で 64 ビット コンパイラ (64 ビット Intel コンパイラ) を使用する場合、これらの 64 ビット書き込みがアトミックになることです。これは常に真実ですか?

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

multithreading - Delphi では、TDataSet はスレッド セーフですか?

TDataSet を独自のスレッドで非同期に開くことができるようにして、それが完了するまでメイン VCL スレッドを続行し、その後メイン VCL スレッドがその TDataSet から読み取れるようにしたいと考えています。私はいくつかの実験を行い、いくつかの非常に奇妙な状況に陥ったので、誰かが前にこれをやったことがあるかどうか疑問に思っています.

TDataSet が別のスレッドで作成され、開かれてからデータが読み取られるサンプル アプリをいくつか見てきましたが、それはすべて別のスレッドで行われます。他のスレッドがデータ ソースを開いた後、メイン VCL スレッドから TDataSet を読み取っても安全かどうか疑問に思っています。

TDataSet の子孫としてDAC for MySQL のTmySQLQuery を使用して、Delphi 7 で Win32 プログラミングを行っています。

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

java - ExecutorService のアクティブなスレッド

で現在実行されているアクティブなスレッドの数を判断する方法はありExecutorServiceますか?