[Javascript] 멀티스레드 처리: Worker

[원본 링크]

자바스크립트는 기본적으로 어느 코드가 실행되는 동안에는 다른 행동을 할 수가 없다.
Worker는 이를 보완하기 위한 기능이다.

Worker의 지원 여부는 대충 이렇게 검사할 수 있다.
난 크롬 최신버전을 쓰는데

잘 지원된다고 한다.

이제 한번 써보자.
Worker가 타이머를 계속 돌려서 5초가 지날때마다 메인 스레드에 알림을 주도록 해보겠다.

Worker는 각각이 별개의 js 소스파일로 작성되어야 한다.
그리고 백그라운드에서 계속 돌아야 하므로, 당연히 무한루프로 돌리는 게 대부분이다.

postMessage가 메인 스레드에 데이터를 보내는 역할을 한다. 5초가 지날떄마다 저 텍스트를 쏴주는 것이다.

그럼 메인 코드를 보자
워커는 Worker 클래스 생성자에 해당 js 소스파일명을 명시하는 것으로 생성할 수 있다.
그리고 메세지에 간단히 반응하도록 짰다.

이러면


5초마다 계속 alert를 띄운다.

대충 이런식으로 쓰면 된다,


참조
http://tcpschool.com/html/html5_api_webWorker