, lastModified는 그 자체로는 감지를 하기는 어렵고, polling해서 변경 사항을 알려주는 기능을 추가로 작성해야 비슷한 형태로 사용할 수 있긴
interrupt 기반 코드와 event driven 코드 모두 코드를 실행하기 전에 기다려야 한다는 점에서 동일..
poll: 이벤트가 실제로 존재하든 그렇지 않든, event query 하기를 기다림.
event: interrupt 기반 코드라고도 불리며, polling 을 위한 lower 한 level 을 위미한다ㅏ. interrupt 의 경우에는 cpu 가 매 클럭마다 interrupr lline 을 poll 한다.
event 방식은 poll 방식에 비해 유저가 아니라 cpu 에 의한 polling 방식이라고 생각하면 된다.
WatchService 의 코드를 보면,
1. 파일 시스템을 위한 WatchService Watcher 를 만든다.
2. 감시하고 싶은 폴ㄷ더를 선택하고 Watcher 에 등록한다. ( 또한 등록한 디렉토리에 대한 WatchKey 를 받아온다)
3. 주어진 이벤트를 기다리기 위해 무한 루프를 구현한다. 이벤트가 발생하면, WatchKey 는 신호를 받고 Watcher 의 큐에 추가 된다.
4. Watcher queue 로부터 키를 받으면, 그 키로부터 파일이름을 받을 수 있다.
5. 키에 대한 각 멈춤이벤트를 받아온다.
6.. 키를 reset, 하고 이벤트 다시 기다림.
7. 서비스 닫음.
polling 은 하나의 값을 읽거나 쓰는 방법으로. 읽어들여지는 시간 차이는 운영체제맏다 다르며 deterministic 한방식이락고 할 수 없다.
event 방식은 dma 혹은 interrupt deriven 방식이라고도 하는데,, ㅊ