C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#でのスレッド同期


同期を使用して、マルチスレッドアプリケーションのリソースへのアクセスを同期します。

スレッドを同期するためのMutex

ミューテックスを使用して、プロセス間でスレッドを同期できます。これを使用して、一度に複数のスレッドがコードのブロックを同時に実行しないようにします。

C#ロックステートメントは、コードのブロックが他のスレッドによって中断されることなく実行されることを保証するために使用されます。コードブロックの期間中、特定のオブジェクトに対して相互排除ロックが取得されます。

ロックステートメントは、引数としてオブジェクトを取得します。 「ロック」に指定されるパラメーターは、参照型に基づくオブジェクトである必要があります-

public class Demo {
   private System.Object myLock = new System.Object();
   public void Process() {
      lock (myLock) {
      }
   }
}

C#のMutexクラスは、プロセス間同期にも使用できる同期プリミティブです。

新しいMutexを作成する方法を見てみましょう-

private static Mutex m = new Mutex();

  1. スレッドを強制終了するC#プログラム

    最初にスレッドを作成して開始します- // new thread Thread thread = new Thread(c.display); thread.Start(); 次に、スレッドを表示し、停止機能を設定してスレッドの動作を停止します- public void display() {    while (!flag) {       Console.WriteLine("It's Working");       Thread.Sleep(2000);   &nbs

  2. Javaのオブジェクトレベルロックとクラスレベルロック?

    両方のオブジェクトレベルのロック およびクラスレベルの場所 kは、同期を実現するために使用されます マルチスレッドアプリケーションのメカニズム。 オブジェクトレベルのロック Javaのすべてのオブジェクトには一意のロックがあります 。スレッドが同期メソッドを実行したい場合 特定のオブジェクトでは、最初にそのオブジェクトのロックを取得する必要があります。スレッドがロックを取得すると、そのオブジェクトに対して同期されたメソッドを実行できるようになります。メソッドの実行が自動的に完了すると、スレッドはロックを解除します。 内部でのロックの取得と解放は、 JVMによって処理されます。 。 オブジェクト