問題タブ [thread-local]

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 に答える
66291 参照

python - Python の「スレッド ローカル ストレージ」とは何ですか? なぜ必要なのですか?

特に Python では、スレッド間で変数がどのように共有されるのでしょうか?

以前に使用したthreading.Threadことはありますが、変数がどのように共有されるかを本当に理解したり、例を見たりしたことはありませんでした。それらはメインスレッドと子の間で共有されますか、それとも子の間でのみ共有されますか? この共有を避けるためにスレッド ローカル ストレージを使用する必要があるのはいつですか?

ロックを使用してスレッド間で共有データへのアクセスを同期することに関する多くの警告を見てきましたが、問題の本当に良い例をまだ見ていません。

前もって感謝します!

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

.net - .NETでスレッドローカルストレージを使用するためのベストプラクティスは何ですか?

私のアプリケーションには、スレッドローカルストレージを使用することで満たすことができると思う要件がありますが、それが避けるのが最善の方法の1つであるかどうか疑問に思っています。

私はこの主題に関するいくつかの記事を読みました:

http://www.dotnetcoders.com/web/Articles/ShowArticle.aspx?article=58

http://msdn.microsoft.com/en-us/library/system.threadstaticattribute(vs.80).aspx

私はそれを使う方法を知っています、私はそれを使うべきかどうか疑問に思っています。

何かアドバイス、知っておくべきことはありますか?

[編集]

ユースケースは次のとおりです。

私は、各クエリについて多くのログを記録するいくつかのメソッドを介してすべてのデータアクセスを集中させます。ログに記録するのは、コマンドが入力されたコマンドテキストの完全なダンプです。これにより、トレースログから直接SqlManagementStudioにコピーアンドペーストできます。

Webアプリのglobal.asaxで、未処理の例外が発生したときに、できるだけ多くの情報を記載したメールを管理者に送信します。SqlExceptionが発生したときに、そのsqlコマンドダンプテキストをこの電子メールに入れたいと思います。これにより、クエリが原因でページが爆発したときにトレースログを調べる時間を節約できます。

データアクセスクラスのメソッドシグネチャを変更したくないのは、例外が発生したときに参照を取得するために、スタックの最後まで参照を渡すことができるようにするためです。TLSは「lastsqlcommand」のようなものを置くのに良い場所かもしれないと思っていましたが、それは実行可能な解決策のようには見えません。

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

java - サーブレットのスレッドローカル変数

threadlocals 変数は、変数を所有するサーブレットに対して行われるすべての要求に対してグローバルですか?

サーバーにはレジンを使用しています。

アンサーありがとう。

自分のことをもっと明確にできると思います。

特定のケース:

したい:

  • リクエストが実行を開始するときに静的変数を初期化します。
  • リクエストが実行を終了するまで、スレッドセーフな方法でサーブレットから呼び出されたメソッドのさらなる実行で変数の値を照会できる
0 投票する
2 に答える
2699 参照

c# - スレッド ローカル ストレージはバックグラウンド ワーカーの呼び出し間で永続化されますか?

バックグラウンド ワーカー スレッドは再利用されますか?

具体的には、バックグラウンド ワーカーの DoWork() メソッド中に名前付きデータ スロット (スレッド ローカル ストレージ) を設定した場合、そのデータ スロットの値は保持され、後で別のスレッドで見つかる可能性がありますか?

私はそうは思わなかったでしょうが、私にはこのバグがあります...

編集:このブログ投稿は、 BackGroundWorkerがThreadPoolを利用することを示唆しています。これは、スレッド再利用されることを意味します。したがって、問題は次のようになります。再利用されたスレッドは、呼び出し間でスレッド ローカル ストレージを保持する可能性がありますか?

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

java - ThreadLocal 変数のパフォーマンス

ThreadLocal変数からの読み取りは、通常のフィールドからの読み取りよりもどれくらい遅いですか?

ThreadLocalより具体的には、単純なオブジェクトの作成は、変数へのアクセスよりも速いですか、それとも遅いですか?

十分に高速であるため、インスタンスを作成するよりも毎回ThreadLocal<MessageDigest>インスタンスを作成する方がはるかに高速であると思います。MessageDigestしかし、それはたとえば byte[10] や byte[1000] にも当てはまりますか?

ThreadLocal編集: getを呼び出すときに実際に何が起こっているのかという質問です。それが他のフィールドと同じように単なるフィールドである場合、答えは「常に最速」ですよね?

0 投票する
4 に答える
9771 参照

java - 春の糸

spring と hibernate と struts を使用する Web アプリケーションがあります (Tomcat で実行されます)。

呼び出しシーケンスは次のようなものです...

Struts アクションは、Spring サービス Bean を呼び出し、Spring DAO Bean を呼び出します。DAO 実装は Hibernate 実装です。

問題は 、すべての春の Bean が同じスレッドで実行されるかどうかです。ThreadLocal に何かを保存して、別の Bean で取得できますか?

これは Stateless Session Bean では機能しないと確信しています。EJB コンテナは、セッション Bean への呼び出しごとに新しいスレッドを生成できます (または生成します)。

春のコンテナは同じことをしますか?つまり、すべての Bean を同じスレッドで実行しますか?

JUnit テストを試したとき、テスト ケースと 2 つの Bean で Thread.currentThread().getId() を介して同じ ID を取得しました。

それとも挙動が予測不能?または、Tomcat サーバーで実行すると変更されますか?

明確化 2 つのスレッド間でデータを交換したくありません。データを ThreadLocal に入れ、コール スタック内のすべての Bean からデータを取得できるようにしたいと考えています。これは、すべての Bean が同じスレッドにある場合にのみ機能します

0 投票する
26 に答える
353318 参照

java - ThreadLocal 変数はいつ、どのように使用すればよいですか?

ThreadLocalいつ変数を使用する必要がありますか?

どのように使用されますか?

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

java - ThreadLocal; 毎回変数のコピーを作成するのと同じではありませんか?

私はまだThreadLocalの概念について混乱しています。JavaDocや、このあたりに投稿されたその他の関連する質問を読みましたが、専門用語が使用されていて、すべてがあまり役に立ちませんでした。

私はThreadLocalのアイデアを理解しています。つまり、各スレッドには変数の独自のコピーがあります。それで...これは言うこととどう違うのですか...毎回新しい変数を作成しますか?

たとえば、DateFormatterを例として使用します。

2番目の変数が変数の新しいコピーを返すだけの場合、最初の変数は2番目の変数とどのように異なりますか?

ありがとう。

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

java - ThreadLocal リソースのリークと WeakReference

ThreadLocalについての私の限られた理解は、リソース リークの問題があるということです。この問題は、ThreadLocalでWeakReferencesを適切に使用することで解決できると思います (ただし、この点を誤解している可能性があります)。WeakReference で ThreadLocal を正しく使用するためのパターンまたは例があれば、それが必要です。たとえば、このコード スニペットでは、WeakReference はどこに導入されますか?