[TIL] 2022.01.06


今日やったこと

  • JAVA復習(第12章マルチスレッド前半)
  • 学識

  • ワークスレッド(Runnable,Thread実装)
  • の作成と使用
    public class Thread1 implements Runnable {
        @Override
        public void run() {
            // 실행할 코드
        }
    }
    
    public class Thread2 extends Thread {
        @Override
        public void run() {
            // 실행할 코드
        }
    }
    
    Thread thread = new Thread(new Runnable() {
    	@Override
    	public void run() {
    	    // 실행할 코드
    });
        
    Thread thread = new Thread() {
    	@Override
    	public void run() {
    	    // 실행할 코드
    	}
    };
  • 同期(synchronized)メソッド/ブロック:現在使用中のオブジェクトを他のスレッドの影響から保護
  • public synchronized void method() {
        // 메소드 전체가 임계 영역
    }
    
    public void method() {
        synchronized(this) {    // 스레드에 의해 사용중인 객체 잠금
            // 임계 영역   
        }
    }
    あるスレッドが1つの
  • の複数の同期メソッド/ブロックを実行している場合、別のスレッドはそのオブジェクトの任意の同期メソッド/ブロックを実行することができず、通常のメソッド
  • しか実行できません.
  • start()メソッド呼び出し時は「実行待ち状態」(RunNABLE)となり、以降のスケジューリングでCPUを占有する場合は「Run()メソッド」(RUNNING)を繰り返し、実行中はスケジューリングから「実行待ち状態」(RUNNING)に変更する.
  • スレッド休止:WAITING(他スレッド通知待ち)、TIMED WAITING(指定待ち時間)、BLOCKED(使用中のオブジェクトロック解除待ち)
  • スレッド状態制御(source)
  • スレッド間コラボレーション:2つのスレッドが交互に実行されます(ex.生産者-消費者スレッド).共有オブジェクトと同期する2つの方法では、wait()、notify()またはnotifyAll()を呼び出して自分を一時停止状態にしたり、他の一時停止状態にあるスレッドを実行待ち状態にしたりします.
  • スレッドのセキュリティ終了:文でブールタイプのフラグを使用するか、一時停止中のスレッドにinterrupt()メソッドを呼び出してinterruptedExceptionを生成し、例外処理コードでリソースを安全にクリーンアップおよび終了します.Threadは、一時停止状態でなくても終了するスレッドでinterrupt()を呼び出したかどうか.割り込み()メソッドの戻り値(ブール値)をチェックして、while文を終了させるように終了できます.
  • 明日やること

  • JAVA復習(第12章マルチスレッド後期)