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

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

6
std :: unique_lock <std :: mutex>またはstd :: lock_guard <std :: mutex>?
StackаэтотвопросестьответынаStack Overflowнарусском:Чемstd :: unique_lockотличаетсяотstd :: lock_guard? 2つの使用例があります。 A. 2つのスレッドによるアクセスをキューに同期させたい。 B. 2つのスレッドによるキューへのアクセスを同期し、条件変数を使用したいのは、一方のスレッドが、もう一方のスレッドによってコンテンツがキューに格納されるのを待つためです。 ユースケースAIについては、を使用しstd::lock_guard&lt;&gt;たコード例を参照してください。使用例については、BIを使用したコード例を参照してくださいstd::unique_lock&lt;&gt;。 この2つの違いと、どのユースケースでどちらを使用すればよいのですか?

9
マルチプロセッシングプールと同様のスレッドプール?
マルチプロセッシングモジュールのプールクラスと同様に、ワーカースレッド用のプールクラスはありますか? たとえば、マップ関数を並列化する簡単な方法が好きです def long_running_func(p): c_func_no_gil(p) p = multiprocessing.Pool(4) xs = p.map(long_running_func, range(100)) ただし、新しいプロセスを作成するオーバーヘッドなしでそれを実行したいと思います。 GILについて知っています。ただし、私のユースケースでは、関数はIOにバインドされたC関数になり、Pythonラッパーは実際の関数呼び出しの前にGILを解放します。 独自のスレッドプールを作成する必要がありますか?

20
Pythonのスレッドから戻り値を取得するにはどうすればよいですか?
foo以下の関数は文字列を返します'foo'。'foo'スレッドのターゲットから返される値を取得するにはどうすればよいですか? from threading import Thread def foo(bar): print('hello {}'.format(bar)) return 'foo' thread = Thread(target=foo, args=('world!',)) thread.start() return_value = thread.join() :上に示した「それを行うには1明白な方法」とは、動作しませんthread.join()返さNone。

13
別のスレッドが所有しているため、呼び出しスレッドはこのオブジェクトにアクセスできません
私のコードは以下の通りです public CountryStandards() { InitializeComponent(); try { FillPageControls(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Country Standards", MessageBoxButton.OK, MessageBoxImage.Error); } } /// &lt;summary&gt; /// Fills the page controls. /// &lt;/summary&gt; private void FillPageControls() { popUpProgressBar.IsOpen = true; lblProgress.Content = "Loading. Please wait..."; progress.IsIndeterminate = true; worker = new BackgroundWorker(); worker.DoWork += …

15
新しいスレッドで簡単なコードを実行するにはどうすればよいですか?
コードの実行中にフォームがフリーズする(10秒程度)ため、GUIとは異なるスレッドで実行する必要があるコードが少しあります。 これまでに新しいスレッドを作成したことがないと仮定します。これをC#で実行し、.NET Framework 2.0以降を使用する方法の簡単な基本例は何ですか?
340 c#  .net  multithreading 


16
別のスレッドからメインスレッドでコードを実行する
Androidサービスで、バックグラウンドタスクを実行するためのスレッドを作成しました。 スレッドがメインスレッドのメッセージキューに特定のタスクを投稿する必要がある状況があります。 Runnable。 Handlerメインスレッドを取得して投稿する方法はありますかMessage/Runnable私の他のスレッドから、それには? おかげで、

29
タイムアウト付きの「サブプロセス」モジュールの使用
OverаэтотвопросестьответынаStack Overflowнарусском:Прерываниепроцессаизадержканаисполнение stdoutデータを返す任意のコマンドを実行するか、ゼロ以外の終了コードで例外を発生させるPython コードは次のとおりです。 proc = subprocess.Popen( cmd, stderr=subprocess.STDOUT, # Merge stdout and stderr stdout=subprocess.PIPE, shell=True) communicate プロセスが終了するのを待つために使用されます: stdoutdata, stderrdata = proc.communicate() subprocessより多くの秒のX数よりもために実行中のプロセスを殺す能力- -モジュールがタイムアウトをサポートしていないので、communicate実行するように永遠にかかる場合があります。 WindowsおよびLinuxで実行するためのPythonプログラムにタイムアウトを実装する最も簡単な方法は何ですか?


11
スレッドからスレッドIDを取得する
たとえば、C#では、スレッドをデバッグするときに、各スレッドのIDを確認できます。 プログラムで同じスレッドを取得する方法が見つかりませんでした。(のプロパティでThread.currentThread)現在のスレッドのIDを取得することもできませんでした。 では、Visual StudioはどのようにスレッドのIDを取得するの2345でしょうか。たとえば、idを使用してスレッドのハンドルを取得する方法はありますか。
319 c#  .net  multithreading 

8
同期(これ)を使用できるのに、なぜReentrantLockを使用するのですか?
私が使用できる場合、並行性のロックが非常に重要になる理由を理解しようとしていますsynchronized (this)。以下のダミーコードでは、次のいずれかを実行できます。 メソッド全体を同期するか、脆弱な領域を同期します(synchronized(this){...}) または、脆弱性のあるコード領域をReentrantLockでロックします。 コード: private final ReentrantLock lock = new ReentrantLock(); private static List&lt;Integer&gt; ints; public Integer getResult(String name) { . . . lock.lock(); try { if (ints.size()==3) { ints=null; return -9; } for (int x=0; x&lt;ints.size(); x++) { System.out.println("["+name+"] "+x+"/"+ints.size()+". values &gt;&gt;&gt;&gt;"+ints.get(x)); } } finally { lock.unlock(); } …

7
JavaでのInterruptedExceptionの処理
次の処理方法の違いは何InterruptedExceptionですか?それを行う最良の方法は何ですか? try{ //... } catch(InterruptedException e) { Thread.currentThread().interrupt(); } または try{ //... } catch(InterruptedException e) { throw new RuntimeException(e); } 編集:これらの2つがどのシナリオで使用されているかも知りたいのですが。

5
Javaの同期キーワードのC#バージョン?
c#には、独自のバージョンのJavaの「synchronized」キーワードがありますか? つまり、Javaでは、次のように、関数、オブジェクト、またはコードブロックのいずれかに指定できます。 public synchronized void doImportantStuff() { // dangerous code goes here. } または public void doImportantStuff() { // trivial stuff synchronized(someLock) { // dangerous code goes here. } }

12
スレッドの数は多すぎますか?
私はサーバーを書いていて、リクエストを受け取ったときにそれぞれのアクションを別々のスレッドに送ります。ほとんどすべてのリクエストがデータベースクエリを作成するため、これを行います。私はスレッドプールライブラリを使用して、スレッドの構築/破棄を削減しています。 私の質問は次のとおりです。これらのようなI / Oスレッドの適切なカットオフポイントは何ですか?おおよその概算であることは知っていますが、何百もの話をしていますか?何千? このカットオフがどうなるかを理解するにはどうすればよいですか? 編集: 回答ありがとうございます。スレッド数の上限を調べるためにテストする必要があるようです。しかし、問題は、私がその上限に達したことをどのようにして知ることができるかです。正確に何を測定すべきですか?

8
JavaでAtomicReferenceを使用する場合
いつ使用しAtomicReferenceますか? すべてのマルチスレッドプログラムでオブジェクトを作成する必要がありますか? AtomicReferenceを使用する必要がある簡単な例を示します。

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