javascript - js에서 동기 메소드의 실행 시간을 감지할 수 있는 방법이 있습니까?
迷茫
迷茫 2017-06-15 09:23:26
0
5
829

구체적으로는 동기화 방법의 실행 시간을 감지할 수 있는 사람이 있나요? 실행 시간이 너무 길면 제가 주도적으로 이 방법을 종료하겠습니다

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

모든 응답(5)
typecho

동기화 방법에 따라 다릅니다.

  • 타사 라이브러리에서 제공하는 방법인 경우 중지 방법을 제공하는지 여부에 따라 다릅니다. 그렇지 않은 경우 할 수 있는 일이 없습니다.

  • 파일 i/o/삭제/생성과 관련된 경우 중지할 수 없지만 오류가 보고된 후 원래 상태를 복원하는 역함수를 작성할 수 있습니다.

  • 이 메소드를 직접 작성하고 여러 하위 기능이 있는 경우 함수 내부에 타이머를 정의하고 각 하위 기능을 실행하기 전에 시간이 허용된 값을 초과하는지 확인할 수 있습니다.
  • 이 방법을 직접 작성하고 단계가 하나뿐인 경우 시간이 많이 걸리는 방법이므로 루프가 있을 수 있으므로 루프할 때마다 시간을 확인하는 것이 좋습니다. . .

世界只因有你

JS 관점에서 동기 메소드를 실행하면 전체 애플리케이션이 차단됩니다. 이때 setTimeout에 의해 비동기적으로 트리거된 콜백도 동기 메소드 실행이 완료된 후에만 이벤트 루프에서 실행될 수 있습니다. 따라서 동기 방식으로 실행할 수 없습니다. 자체 실행 시간을 확인하고 자체를 종료하세요.

컴퓨터 과학의 관점에서 볼 때 묻는 질문은 실제로 고전적인 정지 문제입니다.

정지 문제(영어: 정지 문제)는 논리학과 수학의 계산 가능성 이론에 나오는 문제입니다. 일반인의 관점에서 보면 정지 문제는 어떤 프로그램이 제한된 시간 내에 작업을 종료할 수 있는지 여부를 결정하는 문제입니다. 이 문제는 프로그램 P가 있는지 여부를 결정하는 문제와 동일합니다. 임의의 입력 프로그램 w에 대해 w는 제한된 시간 내에 끝나거나 무한히 반복될 것이라고 판단할 수 있습니다.

이 문제는 NP-하드입니다. 즉, 이 문제를 직접 해결할 수 있는 허용 가능한 시간 복잡도를 갖춘 알고리즘이 없다는 의미입니다.

그러나 학문적 알고리즘을 넘어서 엔지니어링에는 Web Worker나 PM2 등의 프로세스 관리 메커니즘을 사용하는 등 많은 해결 방법이 있지만 여기서는 논의하지 않습니다.

刘奇

그렇다면 멀티스레딩밖에 할 수 없지...
http://www.w3school.com.cn/ht...
그런데 js를 어떻게 죽이는지도 미스터리...
결국... 비동기식을 사용하는 것이 더 좋지 않을까요||||

黄舟

으아악

저는 이것이 실제로 해결책이 아니라는 것을 깨달았습니다. 또 다른 저급 솔루션은 다음과 같습니다:

으아악

모든 비즈니스에 반드시 적합한 것은 아니며 점 자체로 인해 프로세스 속도가 느려집니다.

女神的闺蜜爱上我

Webworker는 다른 스레드에서 계산 로직을 실행할 수 있고, onmessage 메소드는 실행 결과를 승인할 수 있으며,minate
메서드는 webworker의 실행을 종료할 수 있습니다

으아악
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!