이 수면 시간 동안 튜브를 사용하는 데 얼마나 걸리나요?

이 수면 시간 동안 튜브를 사용하는 데 얼마나 걸리나요?

파이프라인을 더 잘 이해하려고 노력 중입니다. 명령줄에 입력하면 다음 과정이 얼마나 걸리나요? 수면 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가 예를 보여주고 이에 대해 자세히 설명합니다.

관련 정보