タグ付けされた質問 「multithreading」

マルチスレッドとは、複数の同時実行ストリーム(一般にスレッドと呼ばれる)を利用して、コンピューターまたはプログラムが作業を同時にまたは非同期に実行する機能です。

12
同じクラスで2つのメソッドを同期した場合、それらは同時に実行できますか?
同じクラスで2つのメソッドを同期した場合、同じオブジェクトで同時に実行できますか?例えば: class A { public synchronized void methodA() { //method A } public synchronized void methodB() { // method B } } methodA()2つの異なるスレッドで同じオブジェクトを2回実行することはできません。で同じことmethodB()。 しかし、実行中methodB()に別のスレッドで実行できmethodA()ますか?(同じオブジェクト)

9
.NETでブロッキングQueue <T>を作成しますか?
複数のスレッドがキューに追加され、複数のスレッドが同じキューから読み取るシナリオがあります。キューが特定のサイズに達すると、キューから項目が削除されるまで、キューを満たしているすべてのスレッドが追加時にブロックされます。 以下の解決策は私が現在使用しているものであり、私の質問は次のとおりです。これをどのように改善できますか?使用する必要があるBCLでこの動作を既に有効にしているオブジェクトはありますか? internal class BlockingCollection&lt;T&gt; : CollectionBase, IEnumerable { //todo: might be worth changing this into a proper QUEUE private AutoResetEvent _FullEvent = new AutoResetEvent(false); internal T this[int i] { get { return (T) List[i]; } } private int _MaxSize; internal int MaxSize { get { return _MaxSize; } set …


10
IllegalMonitorStateException on wait()コール
私のプログラムでは、Javaでマルチスレッドを使用しています。スレッドは正常に実行されましたが、使用Thread.wait()しているとスローされjava.lang.IllegalMonitorStateExceptionます。通知されるまでスレッドを待機させるにはどうすればよいですか?

17
デッドロックとは何ですか?
マルチスレッドアプリケーションを作成するときに発生する最も一般的な問題の1つは、デッドロックです。 コミュニティへの私の質問は次のとおりです。 デッドロックとは何ですか? それらをどのように検出しますか? それらを処理しますか? そして最後に、どのようにしてそれらが発生するのを防ぎますか?

1
「Thread.sleep」を使用せずに「while(true)」を実行すると、LinuxではCPU使用率が100%になりますが、Windowsでは発生しません
私はJavaで簡単なプログラムを作成しました: public static void main(String[] args) throws InterruptedException { while (true) ; } これをLinuxマシンで実行すると、100%のCPU使用率が表示されますが、OSが遅く見えることはありません。ただし、Windowsでまったく同じコードを実行すると、CPU使用率が約20%しか表示されません。 WindowsではOracle JRE、LinuxではOpenJDK 6を使用しています。 Windowsのスケジューラがスレッドをランダムにプリエンプトし、Linuxがプリエンプトしないのだろうか?

7
C#の一般的なタイムアウトを実装する
コードの単一行(または匿名デリゲート)をタイムアウトで実行する一般的な方法を実装するための良いアイデアを探しています。 TemperamentalClass tc = new TemperamentalClass(); tc.DoSomething(); // normally runs in 30 sec. Want to error at 1 min 私のコードが気質的なコードと対話する(変更できない)多くの場所でエレガントに実装できるソリューションを探しています。 さらに、可能であれば、問題のある「タイムアウト」コードをさらに実行しないようにしたいと思います。


10
このスレッド結合コードはどういう意味ですか?
このコードでは、2つのjoinとbreakはどういう意味ですか?t1.join()原因となるt2まで停止するようにt1終了? Thread t1 = new Thread(new EventThread("e1")); t1.start(); Thread t2 = new Thread(new EventThread("e2")); t2.start(); while (true) { try { t1.join(); t2.join(); break; } catch (InterruptedException e) { e.printStackTrace(); } }

5
ConcurrentHashMap値の反復はスレッドセーフですか?
ConcurrentHashMapの javadoc は次のとおりです。 通常、取得操作(getを含む)はブロックされないため、更新操作(putおよびremoveを含む)と重複する場合があります。取得は、その開始時に保留されている最後に完了した更新操作の結果を反映します。putAllやclearなどの集約操作の場合、同時取得は一部のエントリのみの挿入または削除を反映する場合があります。同様に、イテレータと列挙は、イテレータ/列挙の作成以降のある時点でのハッシュテーブルの状態を反映する要素を返します。ConcurrentModificationExceptionはスローされません。ただし、イテレータは一度に1つのスレッドのみが使用するように設計されています。 どういう意味ですか?2つのスレッドで同時にマップを反復しようとするとどうなりますか?反復中にマップに値を追加またはマップから削除するとどうなりますか?


2
Pythonスレッディング文字列引数
Pythonのスレッド化と引数の文字列の送信に問題があります。 def processLine(line) : print "hello"; return; 。 dRecieved = connFile.readline(); processThread = threading.Thread(target=processLine, args=(dRecieved)); processThread.start(); ここで、dRecievedは、接続によって読み取られる1行の文字列です。これは、現時点で「hello」を印刷するジョブが1つしかない単純な関数を呼び出します。 しかし、私は次のエラーを受け取ります Traceback (most recent call last): File "C:\Python25\lib\threading.py", line 486, in __bootstrap_inner self.run() File "C:\Python25\lib\threading.py", line 446, in run self.__target(*self.__args, **self.__kwargs) TypeError: processLine() takes exactly 1 arguments (232 given) 232は、渡そうとしている文字列の長さです。そのため、文字列ごとに分割して、そのような引数を渡そうとしていると思います。通常は関数を呼び出すだけで問題ありませんが、別のスレッドとして設定したいのですが。



7
boost :: threadとboost :: mutexを同等のc ++ 11に置き換えるのは賢明ですか?
動機:私が検討している理由は、私の天才プロジェクトマネージャーが、ブーストは別の依存関係であり、「あなたはそれに依存している」ために恐ろしいと思っているためです(ブーストの品質について説明しようとしましたが、しばらくしてから断念しました:( )。私がそれをしたい小さな理由は、人々がコードを書き始めるので、私はc ++ 11の機能を学びたいということです。 #include&lt;thread&gt; #include&lt;mutex&gt;同等のものの間で1:1のマッピングがありますか? boostのものをc ++ 11の ものに置き換えることをお勧めしますか?私の使用法は原始的ですが、stdが何を後押しするのか提供しない例はありますか?または(冒とく)その逆ですか? PS私はGCCを使用しているため、ヘッダーがあります。

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