POSIX standard에 따르면 파이프에 대한 쓰기는 데이터 크기가 PIPE_BUF보다 작 으면 원자 단위로 보장됩니다.POSIX 파이프의 원 자성의 의미
필자가 이해하는 한, 이것은 파이프에 쓰려고하는 모든 스레드가 다른 스레드의 쓰는 중간에 파이프에 절대 액세스하지 않는다는 것을 의미합니다. 나에게 명확하지 않은 점은 이것이 달성되는 방법과이 원 자성 보장이 다른 의미를 갖는지 여부입니다.
단순히 쓰기 스레드가 쓰기 함수의 어딘가에 잠금을 가져 오는 것을 의미합니까?
파이프에 쓰는 스레드가 쓰기 작업 중에 컨텍스트 밖으로 스케줄되지 않도록 보장되어 있습니까?
귀하의 추론은 표준에 의해 보장되지 않으므로 그 내용을 그대로 사용하십시오. 아시다시피, 당신의 글은 다른 글과 인터리빙되지 않을 것입니다. 더 중요한 것은 구현 세부 사항이며, 표준이 스케쥴링 보장을한다고 생각하지 않습니다. 그것이 의미하는 유일한 것은 다른 스레드가 파이프에 쓰기를 할 수 있다는 것입니다. 쓰기가 보류 중일 때, write()가 호출 된 시간 사이에 스케쥴러와 쓰레드간에 일어난 일은 아무 것도 반환되지 않습니다. 당신의 사업 :) – iluvcapra