20210126 - TIL
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타입의 수를 몇 개 입력하느냐의 차이가 있다.
-
schedule(TimerTask task, long delay) : 단발성 메소드
-
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) 문자를 보낸 후, 바로 답장을 기다리는 것이 아닌, 다른 일을 하다가 문자가 왔다는 알림이 오면 답장을 확인하는 식.
- 비동기가 쓰이는 때?
- 백그라운드 작업이 많을때
- 데이터통신처럼 오래 걸릴 수 있는 일
- 다른 프로그램과의 통신(웹애플리케이션서버와 Database 와의 통신)
- 언제 일어날 지 모르는 막연한 일 (Event기반 프로그래밍)
- 멀티쓰레드 - blocking 방식의 개선이 필요할때
- (적은 쓰레드로 효율적인 프로그래밍)
- 논블로킹:
할 일을 마치지 않았더라도, 제어권을 넘겨주어 다른 일을 진행할 수 있도록 하는 것. - 두 개가 같이 쓰이는 경우가 많지만, 비동기이면서 블로킹인 경우도 있으니, 비동기의 경우 반드시 논블로킹이라고 생각하지 않을 것.
https://musma.github.io/2019/04/17/blocking-and-synchronous.html
- 비동기:
Todo
- 마스터 클래스 수강
- 미션 1,2 완료
느낀점
- 내일은 알고리즘 데이다.. 1월이 벌써 몇 일 안남았다는게 믿겨지지않는다..
Author And Source
이 문제에 관하여(20210126 - TIL), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@znfhdnal1/20210126-TIL저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)