메뉴 건너뛰기

관리자2020.09.14 10:21
한번 close함수를 호출한 워커태스크는(timer.js) 재사용이 안됩니다.

close()는 워커 태스크를 종료시키는 함수입니다.
스레드나 프로세스가 종료되면 운영체제의 프로세스 리스트나 스레드 리스트에서 제거되는 것처럼
브라우저가 태스크 리스트에서 제거해 버리기 때문에 태스크 자체가 없어진 것입니다.
태스크와 timer.js를 약간 구분하는 것이 좋은데요,
태스크는 브라우저가 관리하는단위이고, 태스크가 실행하는 코드는 timer.js입니다.

자바의 스레드를 생각해보면 스레드 코드에서 run() 함수가 종료하면 스레드가 사라지게 되고
더 이상 스레드를 살릴 수 있는 방법이 없습니다. new Thread().start()를 호출하여 새로 스레드를 생성해야 하는 것처럼
워커 태스크로 new Worker("..."); 해서 새로 태스크를 생성해야 합니다.

파일의 경우에도 open() 후 읽고 쓰다가 close()하면 파일이 닫힙니다. 파일이 닫힌다는 의미는
파일 open() 시에 만들어둔 운영체제 내부의 자료 구조들(파일 테이블 항목 만들기, 파일 디스크립터 번호 할당 등) 을 모두 해제시켜 더 이상 읽기 쓰기가 안되는 거죠,
다시 open() 하면 운영체제는 내부에 파일을 읽고 쓸 수 있는 구조를 만들고 그 후에 읽기 쓰기가 되는 것처럼 말이죠,
파일 첨부

여기에 파일을 끌어 놓거나 파일 첨부 버튼을 클릭하세요.

파일 크기 제한 : 0MB (허용 확장자 : *.*)

0개 첨부 됨 ( / )
위로