구체적으로는 동기화 방법의 실행 시간을 감지할 수 있는 사람이 있나요? 실행 시간이 너무 길면 제가 주도적으로 이 방법을 종료하겠습니다
typecho2017-06-15 09:25:26
동기화 방법에 따라 다릅니다.
타사 라이브러리에서 제공하는 방법인 경우 중지 방법을 제공하는지 여부에 따라 다릅니다. 그렇지 않은 경우 할 수 있는 일이 없습니다.
파일 i/o/삭제/생성과 관련된 경우 중지할 수 없지만 오류가 보고된 후 원래 상태를 복원하는 역함수를 작성할 수 있습니다.
이 방법을 직접 작성하고 단계가 하나뿐인 경우 시간이 많이 걸리는 방법이므로 루프가 있을 수 있으므로 루프할 때마다 시간을 확인하는 것이 좋습니다. . .
世界只因有你2017-06-15 09:25:26
JS 관점에서 동기 메소드를 실행하면 전체 애플리케이션이 차단됩니다. 이때 setTimeout에 의해 비동기적으로 트리거된 콜백도 동기 메소드 실행이 완료된 후에만 이벤트 루프에서 실행될 수 있습니다. 따라서 동기 방식으로 실행할 수 없습니다. 자체 실행 시간을 확인하고 자체를 종료하세요.
컴퓨터 과학의 관점에서 볼 때 묻는 질문은 실제로 고전적인 정지 문제입니다.
정지 문제(영어: 정지 문제)는 논리학과 수학의 계산 가능성 이론에 나오는 문제입니다. 일반인의 관점에서 보면 정지 문제는 어떤 프로그램이 제한된 시간 내에 작업을 종료할 수 있는지 여부를 결정하는 문제입니다. 이 문제는 프로그램 P가 있는지 여부를 결정하는 문제와 동일합니다. 임의의 입력 프로그램 w에 대해 w는 제한된 시간 내에 끝나거나 무한히 반복될 것이라고 판단할 수 있습니다.
이 문제는 NP-하드입니다. 즉, 이 문제를 직접 해결할 수 있는 허용 가능한 시간 복잡도를 갖춘 알고리즘이 없다는 의미입니다.
그러나 학문적 알고리즘을 넘어서 엔지니어링에는 Web Worker나 PM2 등의 프로세스 관리 메커니즘을 사용하는 등 많은 해결 방법이 있지만 여기서는 논의하지 않습니다.
怪我咯2017-06-15 09:25:26
그렇다면 멀티스레딩밖에 할 수 없지...
http://www.w3school.com.cn/ht...
그런데 js를 어떻게 죽이는지도 미스터리...
결국... 비동기식을 사용하는 것이 더 좋지 않을까요||||
黄舟2017-06-15 09:25:26
으아악
저는 이것이 실제로 해결책이 아니라는 것을 깨달았습니다. 또 다른 저급 솔루션은 다음과 같습니다:
으아악모든 비즈니스에 반드시 적합한 것은 아니며 점 자체로 인해 프로세스 속도가 느려집니다.
女神的闺蜜爱上我2017-06-15 09:25:26
Webworker는 다른 스레드에서 계산 로직을 실행할 수 있고, onmessage 메소드는 실행 결과를 승인할 수 있으며,minate
메서드는 webworker의 실행을 종료할 수 있습니다