21.01.22-43日目


Thread(Thread)


🛫 スレッド同期

  • マルチスレッドプロセスは、他のスレッドの動作に影響を与える可能性があります.
  • が実行中の操作を他のスレッドに干渉させたくない場合は、「同期」が必要です.
    📚スレッドの同期:
  • は、あるスレッドが別のスレッドを処理することを阻止します.
  • を同期するには、干渉しない文を「臨界領域」
  • に設定します.
  • 臨界領域は、ロックを取得するスレッドが1つしか出入りできない(オブジェクトが1つのロック)
  • .

    🛫 synchronizedによる同期

  • 臨界領域(ロック領域)を同期的に設定する2つの方法
  • .
    1. 메서드 전체를 임계 영역으로 저장
    public synchronized void calcSum() {
    	// ...					// 임계 영역(critical section)
    }
    .
    2. 특정한 영역을 임계 영역으로 지정
    synchronized(객체의 참조변수){
    	// ...					// 임계 영역(critical section)
    }

    🛫 wait()とnotify()


    wait()、notify()を使用して
  • 同期の効率を向上
  • オブジェクトクラスで定義され、同期ブロックでのみ使用できます.
  • wait()-オブジェクトをロック解除し、スレッドをオブジェクトの待機プールに配置します.
  • notify()-待機中のスレッドの1つを起動します.(ランダム)
  • notifyAll()-待機プールで待機しているすべてのスレッドを起動します.
  • 🚋 ソース


    JAvaの定式書&youtube