August 2, 2019 Comments(0) Uncategorized

    javascript thread 예제

    그래서, 우리의 Node.js 응용 프로그램은 바로, 단일 스레드입니다? 글쎄, 일종의. 확인을 위해 웹 브라우저콘솔에서 이러한 for-루프를 실행합니다. 구글 크롬에서, 자바 스크립트 콘솔 탭의 기본 스레드를 사용 하 여. 따라서 콘솔에서 이러한 루프를 실행하면 해당 탭이 고정됩니다. 이것은 분명히 문제가 있고 스레드가 아닌 안전합니다. 따라서 이 시점에서 많은 사람들은 누군가가 Node.js 코어에 새 모듈을 추가하고 스레드를 만들고 동기화 할 수 있다고 생각할 것입니다. 그게 맞아야? Node.js와 같은 성숙한 서버 측 플랫폼에서이 사용 사례를 해결하는 좋은 방법이 없는 것은 부끄러운 일입니다. 이전 예제로 돌아갑니다. 이제 몇 천 개의 결과를 반환하는 쿼리가 있고 JavaScript 코드의 값을 해독해야한다고 가정하십시오. 하지만 날 믿어, 위와 같은 작업에 대 한 웹 작업자를 사용 하 여 시작 하는 때, 사용자 경험 (UX) 웹 응용 프로그램에 대 한 큰 차이로 증가 할 것 이다.

    JavaScript에서 작업을 수행할 때마다(예: DOM 요소 내부에 텍스트 삽입) 전체 웹 페이지가 정지되고 응답하지 않습니다. HTML5 앱의 시대에는 재치 있고 반응성이 뛰어난 UI를 제공하는 것이 매우 중요합니다. 이 아이디어는 JavaScript에서 무거운 작업을 수행할 때 빠르게 죽고 상호 작용을 차단하여 사용자 환경이 좋지 않을 수 있습니다. 웹 작업자는 UI 스레드를 차단하지 않고 다른 스레드(그리고 다른 CPU 코어에서도)에서 이러한 작업을 수행할 수 있는 방법을 소개합니다. 위의 구현이 main.js와 같은 외부 JavaScript 파일에서 수행되면이 작업자 파일은 해당 파일에 대해 해결됩니다. 주 스레드의 JavaScript 프로그램은 이벤트를 사용하여 웹 작업자와 통신합니다. 이 통신은 `메시지` 이벤트와 데이터 페이로드만 사용하여 발생합니다. Node.js의 창시자인 라이언 달은 이러한 한계를 기회로 여겼습니다.