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

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

26
スレッド化されたコードを単体テストするにはどうすればよいですか?
マルチスレッドコードをテストするという悪夢は、地雷のように思えるので、これまでは避けてきました。スレッドに依存して実行が成功するコードのテストに人々がどのように取り組んでいるのか、または2つのスレッドが特定の方法で相互作用するときにのみ表示される種類の問題のテストにどのように取り組んでいるのかを尋ねたいのですが。 これは、今日のプログラマーにとって本当に重要な問題のようです。この1つの私見に関する知識をプールしておくと役に立ちます。

22
volatileキーワードは何に役立ちますか
今日の仕事で、私volatileはJavaでキーワードに出くわしました。あまり詳しくないので、次の説明を見つけました。 Javaの理論と実践:ボラティリティの管理 その記事で問題のキーワードを説明している詳細を考えて、それを使用したり、このキーワードを正しい方法で使用できるケースを見たりしたことがありますか?

9
揮発性vs.インターロックvs.ロック
クラスに、public int counter複数のスレッドによってアクセスされるフィールドがあるとしましょう。これintは、増分または減分されるだけです。 このフィールドをインクリメントするには、どのアプローチを使用する必要がありますか。その理由は何ですか。 lock(this.locker) this.counter++;、 Interlocked.Increment(ref this.counter);、 のアクセス修飾子をcounterに変更しますpublic volatile。 私が発見したvolatileので、私は多くのlockステートメントとの使用を削除してきましたInterlocked。しかし、これを行わない理由はありますか?


22
クロススレッド操作が無効です:作成されたスレッド以外のスレッドからアクセスされたコントロール
シナリオがあります。(Windowsフォーム、C#、. NET) いくつかのユーザーコントロールをホストするメインフォームがあります。 ユーザーコントロールが重いデータ操作を行うため、UserControl_Loadメソッドを直接呼び出すと、ロードメソッドの実行中にUIが応答しなくなります。 これを克服するために、別のスレッドでデータをロードします(できる限り既存のコードを変更しないようにします)。 私は、データをロードするバックグラウンドワーカースレッドを使用しました。完了すると、アプリケーションに作業が完了したことを通知します。 今、本当の問題が起こりました。すべてのUI(メインフォームとその子ユーザーコントロール)は、プライマリメインスレッドで作成されました。usercontrolのLOADメソッドでは、userControlのコントロール(テキストボックスなど)の値に基づいてデータをフェッチしています。 擬似コードは次のようになります。 コード1 UserContrl1_LoadDataMethod() { if (textbox1.text == "MyName") // This gives exception { //Load data corresponding to "MyName". //Populate a globale variable List<string> which will be binded to grid at some later stage. } } それが与えた例外は クロススレッド操作が無効です:作成されたスレッド以外のスレッドからアクセスされたコントロール。 これについてもっと知るために私はいくつかグーグルを行い、次のコードを使用するような提案が出ました コード2 UserContrl1_LoadDataMethod() { if (InvokeRequired) …



16
なぜlock(this){…}が悪いのですか?
MSDNのドキュメントには、と言っています public class SomeObject { public void SomeOperation() { lock(this) { //Access instance variables } } } 「インスタンスがパブリックにアクセスできる場合の問題」です。なぜだろう?ロックが必要以上に長く保持されるからでしょうか?それとももっと陰湿な理由がありますか?

11
Looperの目的とその使用方法は何ですか?
Androidは初めてです。Looperクラスの機能と使い方を知りたい。Android Looperクラスのドキュメントを読みましたが、完全に理解できません。多くの場所で見ましたが、目的がわかりません。誰かが目的を定義し、Looper可能であれば簡単な例を挙げて私を助けてくれますか?

18
PHPアプリケーションでマルチスレッドを使用するには
マルチスレッドモデルをPHPに実装する現実的な方法はありますか。しばらく前に、オペレーティングシステムにPHP実行可能ファイルの別のインスタンスをロードさせ、他の同時プロセスを処理させることが提案されました。 これの問題は、PHPコードがPHPインスタンスの実行を終了したときに、PHP内からそれを強制終了する方法がないため、メモリに残っていることです。したがって、複数のスレッドをシミュレートしている場合は、どうなるか想像できます。そのため、マルチスレッドをPHP内から効果的に実行またはシミュレートできる方法を探しています。何か案は?


6
Invoke()とBeginInvoke()の違いは何ですか
ただ、どのような違い不思議BeginInvoke()とInvoke()されていますか? 主にそれぞれが何のために使われるか。 編集:スレッド化オブジェクトを作成することと、それに対してinvokeを呼び出すこととBeginInvoke()、デリゲートを呼び出すことの違いは何ですか?またはそれらは同じものですか?


7
C ++でのスレッドの簡単な例
この質問の答えはコミュニティの努力です。この投稿を改善するには、既存の回答を編集してください。現在、新しい回答や相互作用を受け入れていません。 C ++で2つの(オブジェクト指向)スレッドを開始する簡単な例を誰かが投稿できますか? Cスタイルのスレッドライブラリを呼び出すのではなく、runメソッド(または類似の何か)を拡張できる実際のC ++スレッドオブジェクトを探しています。 私は、OS固有の要求は省略しました。返答する人はだれでもクロスプラットフォームライブラリを使用して返信することを期待しています。私は今それを明示しているだけです。


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