표준 C++ (플랫폼 특정 API 없음) 만 사용하여 즉시 완료되거나 시간 초과 될 수있는 외부 응용 프로그램을 시작하려고합니다. 응용 프로그램이 중단되면 내 응용 프로그램은 응용 프로그램을 종료하고 다시 실행하기 만하면 시간 초과가 발생합니다.다른 스레드에서 하나의 스레드가 종료 됨
지금, 아래로 본격 비교에, 나는 두 개의 스레드를 시작하려고 :
-
스레드가 종료되었습니다. 만약 그렇지 않다면, 그것을 멈춘 것으로 간주합니다.
질문 : 두 번째 스레드의 첫 번째 스레드를 어떻게 종료합니까? 앱을 시작하는 방법은 system() 함수를 사용하는 것입니다. 동기식이므로 종료를 원할 경우 해당 스레드에서 확인할 수있는 방법이 없습니다. 그것은 외부 적으로 어떻게 든 강제로 강요되어야합니다. 이것이 가능하지 않은 경우
이 : 제대로? 7P.S을 수행하는 방법, 그리고 나는, 나는 단순히 더 이상 스레드를 기다릴하지 않으되지 않는다 생각한다. 단순히 백그라운드에서 멈추게 될 수 있습니다. 어떻게해야합니까? (현재, join()
와 함께 해당 스레드를 기다리고 있습니다)
'system()'을 사용하여 시작한 프로세스를 종료 할 수있는 휴대용 방법이 있다면 놀랄 것입니다. – NPE
나는 그 과정을 죽이고 싶지 않다. 프로세스를 시작한 스레드가 그만두 기 때문에 그렇게 할 수는 있습니다. 그래서 하루가 끝나면 몇 가지 프로세스가 멈추지 만 문제는 없습니다. –
첫 번째 단락에서 하위 프로세스를 종료하는 방법을 명시 적으로 요청했습니다. 스레드를 죽이는 것에 관해서는, 당신은 어떤 스레드 라이브러리를 사용하고 있습니까? C++ 11'std :: thread' 또는 다른 것? – Useless