2016-10-20 4 views
-2

저는 pthreads에 익숙하지 않아 다양한 간단한 입력이있는 C에서 자체 쉘 스크립트를 만들려고합니다. 그 중 일부는 상당히 시간이 많이 걸립니다. 나는 다른 명령을 위해 쉘을 계속 사용하는 동안 이러한 작업을 계속하는 pthread를 만들 수 있기를 원합니다.백그라운드에서 완료까지 실행되는 Pthread를 만듭니다.

그러나 내가 뭘하려해도 항상 가장 최근에 만들어진 pthread가 완료 될 때까지 기다렸다가 다른 것을 입력 할 수 있습니다.

나는 자식 프로세스가 아닌 스레드 만이 작업을 수행 할 예정이므로 fork()는 여기에 대한 옵션이 아닙니다.

본질적으로, 제 질문은 쉘 스크립트를 백그라운드로 사용하여 완전히 독립적으로 실행되는 스레드를 어떻게 만들어서 중요한 중단없이 쉘을 계속 사용할 수 있는지입니다.

+0

문맥하시기 바랍니다. pthread를 생성하는 C 프로그램의 일부는 무엇입니까? 자신이 시도한 것에 대해 구체적으로 설명하십시오. – esecules

답변

0

원하는대로 수행하는 pthread를 생성하는 프로그램을 코딩해야합니다. 당신은 그 프로그램 .exe 파일이 있다고 가정하고 그것은 'myProgram'이라고 불립니다. 당신은 위의 스크립트가 myProgram에게 명령 행 인수의 2 개 세트와 2 회를 ​​실행하는 쉘

#!/bin/bash 
./myProgram input_1 input_2 input_3 input_4& 
./myProgram input_1 input_2 input_3 input_4; 

을 "동결"하지 않으면 서 myProgram에 입력을 제공하는 스크립트를 만들려면. 두 번째 줄의 끝에 '&'기호를 사용하면 myprogram이 백그라운드에서 실행되므로 쉘을 계속 사용할 수 있습니다. myProgram을 여러 번 실행하려면 각 실행 명령 끝에 '&'을 추가하면됩니다. 각 프로그램 실행은 백그라운드에서 실행되며 프로그램이 실행되는 동안 쉘 사용을 계속 유지할 수 있습니다.

관련 문제