2017-04-11 10 views
0

2 개의 유닉스 프로세스가 TCP 소켓에 쓸 수 있습니까? (즉, OS가 각 프로세스에서 작성한 쓰기를 예약 할 수있는 방법이 있습니까?) 그렇다면 어떤 문제가 발생할 수 있습니까?2 개의 유닉스 프로세스가 같은 시간에 동일한 TCP 소켓에 쓰기

+0

예. 괄호 안에있는 부분의 의미는 나를 피합니다. 쓰기와 보내기는 원자 적이지만 각 프로세스의 전송은 임의로 인터리브 될 수 있습니다. – EJP

답변

1

음 ... 두 개의 유닉스 프로세스가 하나의 (공유 된) TCP 소켓에 write 수 있습니다 ...하지만이 설계 결함을 고려할 것입니다.

write은 원자 일 수 있지만 부분적 일 수 있으므로 인터리브 된 데이터가 write 호출 사이에 기록됩니다.

이 문제를 해결하려면 응용 프로그램 수준 동기화 요소가 필요합니다.

이 모든 것이 가치를 추가하지 않으면 서 복잡성을 증가시킵니다.