
파이프라인을 더 잘 이해하려고 노력 중입니다. 명령줄에 입력하면 다음 과정이 얼마나 걸리나요? 수면 30 | 수면 40
동시에 실행하면 40초 정도 될까요?
답변1
$ time $(sleep 30 | sleep 40)
real 0m40.004s
user 0m0.001s
sys 0m0.003s
예. 나는 파이프가 시작되고 명령이 시작되자마자 출력과 입력을 수행한다고 믿습니다. 따라서 명령을 완료하는 데 가능한 한 오랜 시간이 걸립니다.
반품,파이프라인이 언제 실행될지 예측할 수 없습니다..그것은 모두 특정 시점의 시스템 CPU의 I/O 기능에 따라 달라집니다.
$ cat file
test
$ time grep test file
test
real 0m0.005s
user 0m0.000s
sys 0m0.003s
$ time grep test file | grep test
test
real 0m0.004s
user 0m0.002s
sys 0m0.002s
답변2
파이프라인의 중단된 부분은 동시에 발생하며 서로 독립적으로 실행됩니다(일부 IO가 발생하지 않는 한, 귀하의 경우에는 발생하지 않습니다).
sleep
귀하의 프로세스는 귀하가 발행하는 데 가장 오랜 시간이 걸립니다 . 귀하의 경우에는 40초입니다.
Stalin Vignesh Kumar가 예를 보여주고 이에 대해 자세히 설명합니다.