[解決済み] "フリースレッド "と "スレッドセーフ "の違いについて
2022-02-14 08:14:20
質問
クラスやメソッドを説明するために、"free-threaded"という言葉を時々見かけますが、これは何ですか?スレッドセーフと同じような意味合いなのでしょうか?
この2つの用語には違いがあるのでしょうか?
どのように解決するのですか?
他の文脈では他の意味があるかもしれませんが、私が過去に扱ったケースでは、quot;free threaded"は、アパートメント間のマーシャリングなしに異なるスレッドで動作する、または少なくとも動作可能であることを意味しています。
アパートメント・スレッディングは対照的に、quot;global" データ(考えてみれば、これは実際にはグローバルではありません)の個別のコピーで異なる "apartments" をブロックし、アパートメントで動作するスレッドを 1 つだけ許可するか、または複数許可しても、他のアパートメントを使用するものとは別のものになるかのどちらかになります。
さて、アパートメントモデルはそれ自身のスレッドセーフを提供するので、スレッドセーフに関するいくつかの懸念は解消されます(すべてではありません)。アパートメントモデルで動作するように設計されたコードは、スレッドセーフですが、そのスレッドセーフの一部または全部は、アパートメントモデルから来るものです。
自由なスレッドコードは、それが主張するスレッドセーフの程度にかかわらず、完全な保証を提供しなければなりません。
つまり、アパートメントモデルのコードを使用する際のスレッドセーフを考慮する必要がない場合は、スレッドセーフとほぼ同じ意味になります。
関連
-
[解決済み】コレクションが変更され、列挙操作が実行されないことがある。
-
[解決済み] Win32 InterlockedExchange関数はどのような場合に使用するのですか?
-
[解決済み] プロセスとスレッドの違いは何ですか?
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み】非同期プログラミングとマルチスレッドの違いは何ですか?
-
[解決済み】atomic / volatile / synchronizedの違いは何ですか?
-
[解決済み】スレッド間で共有されるリソースは何ですか?
-
[解決済み】Node.jsに対するHaskellの対応について教えてください。
-
[解決済み】 std::unique_lock<std::mutex> と std::lock_guard<std::mutex> のどちらを選ぶ?
-
[解決済み] 何がメソッドをスレッドセーフにするのか?そのルールは?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Not on FX application thread; currentThread = JavaFX Application Thread エラーを回避する方法は?
-
[解決済み] "フリースレッド "と "スレッドセーフ "の違いについて
-
[解決済み] Win32 InterlockedExchange関数はどのような場合に使用するのですか?
-
[解決済み] Pythonでループ内の演算をマルチスレッド化する方法
-
[解決済み】スレッド間で共有されるリソースは何ですか?
-
[解決済み】セマフォとモニター、何が違うの?
-
[解決済み】Node.jsに対するHaskellの対応について教えてください。
-
[解決済み】並行処理、並列処理、非同期メソッドの違いは何ですか?
-
[解決済み】Redisはシングルスレッドですが、同時I/Oはどのように行うのですか?
-
[解決済み] Re-entrantロックとは何ですか?