JavaScript 매크로 작업 과 마이크로 작업

매크로 퀘 스 트 와 마이크로 퀘 스 트
  • 자바 스 크 립 트 는 단일 스 레 드 언어(다 중 스 레 드 dom 이 미 칠 경우)
  • 그래서 같은 시간 에 하나의 임 무 를 수행 할 수 있 고 주 스 레 드 라 고 부 르 며 동기 화 임 무 를 수행 할 수 있 습 니 다
  • .
  • 동시에 두 개의 퀘 스 트 목록 은 비동기 퀘 스 트,매크로 퀘 스 트,마이크로 퀘 스 트
  • 를 저장 하 는 데 사 용 됩 니 다.
  • 실행 순 서 는 주 스 레 드=>마이크로 퀘 스 트=>매크로 퀘 스 트
  • 입 니 다.
    타이머
  • 타이머 모듈,도착 시간 에 매크로 작업 대기 열 에 넣 기
  • 메 인 스 레 드 에 퀘 스 트 가 없 으 면 수행 하고 있 으 면 수행 완료 후 계속 수행
  • 같은 시간의 타이머 가 두 개 있 으 면 위의 것 은 아래 의 것 을 먼저 실행 한 다음 에 집행 한다
  • 두 시간 이 다른 타이머 가 있 으 면 시간 이 짧 은 선 집행 시간 이 긴 후 집행
  • 주의 점:
    타이머⏲타이머 모듈 에서 완 성 된 것 입 니 다.완성 하면 일반 비동기 임무 와 같 습 니 다.
  • 시간 적 으로 메 인 스 레 드 의 실천 이 너무 긴 이유 로 연기 할 수 있 습 니 다
  • 在这里插入图片描述
    Promise 관련
  • promise 의 구조 함 수 는 동기 화 작업
  • 실행 순 서 는 영원히 동기 화=>마이크로 퀘 스 트=>매크로 퀘 스 트
  • 입 니 다.
  • 내장 코드 에 매크로 작업 에 동기 화,매크로 작업,마이크로 작업 이 있 을 수 있 습 니 다.이 때 다음 실행 중인 대기 열/메 인 스 레 드 에 두 고 실행 을 기다 리 십시오
  • 
    setTimeout(() => {
        console.log("   ");
        setTimeout(() => {
          console.log("timeout timeout");
        }, 0);
        new Promise(resolve => {
          console.log("settimeout Promise");
          resolve();
        }).then(() => {
          console.log("settimeout then");
        });
      }, 0);
      new Promise(resolve => {
        console.log("Promise");
        resolve();
      }).then(() => {
        console.log("then");
      });
      console.log("ssss");
    실행 순서:Promise=>ssss=>then=>타이머=>settimeout Promise=>settimeout then=>timeout timeout
    DOM 렌 더 링 작업
    브 라 우 저 렌 더 링:CSS+DOM 실행
    js 를 가능 한 한 아래 에 놓 을 수 있 습 니 다.
    작업 공유 메모리
    작업 을 동시에 수행 하지 않 고 하나씩 스케줄 링 되 어 메모 리 를 공유 합 니 다.
    Promise 마이크로 임무 처리 복잡 한 업무
    promise 를 사용 하면 작업 을 비동기 작업 으로 바 꾸 어 동기 화 작업 의 수행 에 영향 을 주지 않 습 니 다.
    자 바스 크 립 트 의 매크로 작업 과 마이크로 작업 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.자 바스 크 립 트 매크로 작업 과 마이크로 작업 에 관 한 더 많은 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 응원 바 랍 니 다!

    좋은 웹페이지 즐겨찾기