20210126 - TIL

3944 단어 TILTIL

TIL

  • 자바 Timer -

    • 백그라운드에서 특정한 시간 혹은 일정 시간을 주기적으로 반복하여 특정 작업을 실행하는 클래스

    • 메소드의 sleep()기능과 비슷하게 작동되지만, 따로 대기하지않아도 됨.

    • 사용 방법:

      Timer timer = new Timer();
      // 실제 타이머 기능을 수행하는 클래스.
      TimerTask timerTask = new TimerTask(){
        // Timer클래스가 수행해야 할 내용을 작성하는 클래스.
        // 때문에, 반드시 아래의 run()메소드를 작성해야한다.
        @Override
        public void run(){
          System.out.println("Hello World");
        }
      };
      
      timer.schedule(timerTask, 5000);

      5초 뒤에 "Hello World"가 출력되게 된다.

      • schedule의 종류

        • 사용 방법은 위와 같다. 단지 long타입의 수를 몇 개 입력하느냐의 차이가 있다.
        1. schedule(TimerTask task, long delay) : 단발성 메소드

        2. schedule(TimerTask task, long delay, long period) : 연발성 메소드

          • delay: 최초 시작 딜레이
          • priod: 반복 주기

          cancle() 메소드를 통해, 실행중인 타이머를 중단시킬 수있다.

    https://hamait.tistory.com/211
    https://m.blog.naver.com/PostView.nhn?blogId=highkrs&logNo=220283709171&proxyReferer=https:%2F%2Fwww.google.com%2F

  • 비동기와 논블로킹

    • 비동기:
      동기와 달리 함께 시간을 맞춰 실행되지 않고, 지연실행함수가 추후에 실행 되는 것.
      • ex) 문자를 보낸 후, 바로 답장을 기다리는 것이 아닌, 다른 일을 하다가 문자가 왔다는 알림이 오면 답장을 확인하는 식.
      • 비동기가 쓰이는 때?
        1. 백그라운드 작업이 많을때
        2. 데이터통신처럼 오래 걸릴 수 있는 일
        3. 다른 프로그램과의 통신(웹애플리케이션서버와 Database 와의 통신)
        4. 언제 일어날 지 모르는 막연한 일 (Event기반 프로그래밍)
        5. 멀티쓰레드 - blocking 방식의 개선이 필요할때
          • (적은 쓰레드로 효율적인 프로그래밍)
    • 논블로킹:
      할 일을 마치지 않았더라도, 제어권을 넘겨주어 다른 일을 진행할 수 있도록 하는 것.
    • 두 개가 같이 쓰이는 경우가 많지만, 비동기이면서 블로킹인 경우도 있으니, 비동기의 경우 반드시 논블로킹이라고 생각하지 않을 것.

    https://musma.github.io/2019/04/17/blocking-and-synchronous.html

Todo

  • 마스터 클래스 수강
  • 미션 1,2 완료

느낀점

  • 내일은 알고리즘 데이다.. 1월이 벌써 몇 일 안남았다는게 믿겨지지않는다..

좋은 웹페이지 즐겨찾기