タグ付けされた質問 「thread-safety」

複数のスレッドによるこのコードの一貫した実行を可能にする方法でのみデータ構造を操作する場合、コードの一部はスレッドセーフです。コードは、スレッドセーフ、条件付きで安全(相互排除が必要)、または安全ではない(1つのスレッドだけが安全に使用できる)場合があります。

11
スレッドセーフとはどういう意味ですか?
最近、UIスレッド以外のスレッドからテキストボックスにアクセスしようとすると、例外がスローされました。それは「コードがスレッドセーフではない」ことについて何かを言っていたので、結局、デリゲート(MSDNのサンプルを参考にした)を書き、代わりにそれを呼び出しました。 しかし、それでも、なぜすべての追加コードが必要なのかはよくわかりませんでした。 更新:チェックすると深刻な問題が発生しますか Controls.CheckForIllegalCrossThread..blah =true

15
スレッドセーフなList <T>プロパティ
私はList&lt;T&gt;間違いなくスレッドセーフに使用できるプロパティとしての実装を望んでいます。 このようなもの: private List&lt;T&gt; _list; private List&lt;T&gt; MyT { get { // return a copy of _list; } set { _list = value; } } コレクションのコピー(複製)を返す必要があるようですが、どこかでコレクションを反復処理していて、同時にコレクションが設定されている場合、例外は発生しません。 スレッドセーフなコレクションプロパティを実装する方法は?



8
スレッドセーフな辞書を実装する最良の方法は何ですか?
IDictionaryから派生させ、プライベートSyncRootオブジェクトを定義することで、C#でスレッドセーフなディクショナリを実装できました。 public class SafeDictionary&lt;TKey, TValue&gt;: IDictionary&lt;TKey, TValue&gt; { private readonly object syncRoot = new object(); private Dictionary&lt;TKey, TValue&gt; d = new Dictionary&lt;TKey, TValue&gt;(); public object SyncRoot { get { return syncRoot; } } public void Add(TKey key, TValue value) { lock (syncRoot) { d.Add(key, value); } } // more IDictionary …


3
Pythonの辞書のスレッドセーフ
辞書を持っているクラスがあります class OrderBook: orders = {'Restaurant1': None, 'Restaurant2': None, 'Restaurant3': None, 'Restaurant4': None} @staticmethod def addOrder(restaurant_name, orders): OrderBook.orders[restaurant_name] = orders そして、私はメソッドを呼び出す4つのスレッド(各レストランに1つ)を実行していますOrderBook.addOrder。次に、各スレッドによって実行される関数を示します。 def addOrders(restaurant_name): #creates orders ... OrderBook.addOrder(restaurant_name, orders) これは安全ですか、または呼び出す前にロックを使用する必要がありますaddOrderか?

2
SecureRandomスレッドは安全ですか?
あるSecureRandomスレッドセーフでは?つまり、それを初期化した後、次の乱数へのアクセスはスレッドセーフになるために信頼できますか?ソースコードを調べると、そうであることがわかります。このバグレポートは、スレッドセーフとしてのドキュメントの欠如がjavadocの問題であることを示しているようです。実際にスレッドセーフであることを誰かが確認しましたか?

4
別のスレッドで実行されているiphone ios
別のスレッドでコードを実行する最良の方法は何ですか?それは...ですか: [NSThread detachNewThreadSelector: @selector(doStuff) toTarget:self withObject:NULL]; または: NSOperationQueue *queue = [NSOperationQueue new]; NSInvocationOperation *operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(doStuff:) object:nil; [queue addOperation:operation]; [operation release]; [queue release]; 私は2番目の方法を行っていますが、私が読んでいるウェズリークックブックでは最初の方法を使用しています。

3
グローバル変数はフラスコ内でスレッドセーフですか?リクエスト間でデータを共有するにはどうすればよいですか?
私のアプリでは、リクエストを行うことで共通オブジェクトの状態が変更され、応答は状態によって異なります。 class SomeObj(): def __init__(self, param): self.param = param def query(self): self.param += 1 return self.param global_obj = SomeObj(0) @app.route('/') def home(): flash(global_obj.query()) render_template('index.html') 開発サーバーでこれを実行すると、1、2、3などになると期待しています。100の異なるクライアントから同時にリクエストが行われた場合、何か問題が発生する可能性がありますか?予想される結果は、100の異なるクライアントがそれぞれ1から100までの一意の番号を表示することです。または、次のようなことが起こります。 クライアント1が照会します。self.param1ずつ増加します。 returnステートメントを実行する前に、スレッドself.paramはクライアント2に切り替わります。再びインクリメントされます。 スレッドはクライアント1に戻り、クライアントには、たとえば、番号2が返されます。 これでスレッドはクライアント2に移動し、クライアントに番号3を返します。 クライアントが2つしかないため、期待される結果は2と3ではなく1と2でした。数値はスキップされました。 これは、アプリケーションをスケールアップするときに実際に起こりますか?グローバル変数に代わるものは何ですか?


6
JUnitテストを待機させるにはどうすればよいですか?
同期的に一定時間待機させたいJUnitテストがあります。私のJUnitテストは次のようになります。 @Test public void testExipres(){ SomeCacheObject sco = new SomeCacheObject(); sco.putWithExipration("foo", 1000); //WAIT FOR 2 SECONDS assertNull(sco.getIfNotExipred("foo")); } Thread.currentThread()。wait()を試しましたが、IllegalMonitorStateExceptionがスローされます(予想通り)。何かトリックはありますか、それとも別のモニターが必要ですか?

3
Rubyでスレッドセーフでないものを知る方法は?
Rails 4以降、デフォルトではすべてがスレッド環境で実行される必要があります。これが意味することは、私たちが書くコードのすべてであると ALL我々が使用する宝石があることが要求されていますthreadsafe だから、私はこれについていくつか質問があります: ruby / railsでスレッドセーフでないものは何ですか?対ルビー/レールのスレッドセーフは何ですか? スレッドセーフまたはその逆であることが知られている宝石のリストはありますか? スレッドセーフな例ではないコードの一般的なパターンのリストはあり@result ||= some_methodますか? Hashetcなどのruby langコアのデータ構造はスレッドセーフですか? MRIでは、GVL/GILを除いて一度に実行できるルビスレッドが1つだけであることを意味する/IOがありますが、スレッドセーフな変更は影響を及ぼしますか?

7
インストールされているPHPがスレッドセーフか非スレッドセーフかを確認しますか?
インストールされているPHPのバージョンがスレッドセーフかどうかを確認するにはどうすればよいですか? スレッドセーフインストールと非スレッドセーフインストールの違いは問わないことに注意してください。現在何がインストールされているのか知りたい。
90 php  iis  thread-safety 


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.