2010-05-11 4 views

답변

5

AFAIK는, 소켓은 우리가 읽고 동시에 같은 소켓에 쓸 수있는 의미 전이중입니다. 그러나 한 번에 한 명의 독자와 한 명의 작가 만 있어야합니다. 내가 틀렸다면 나를 바로 잡으십시오.

+3

틀린 것은 아닙니다. 다른 스레드가 동시에 쓰는 동안 한 스레드가 읽을 수 있습니다. 여러 스레드가 읽거나 여러 스레드가 쓰는 경우 중복을 방지하기 위해 소켓의 해당 측면에 대한 액세스를 수동으로 직렬화해야합니다. –

+0

질문이 있습니다 ... 같은 syscall'write'에 바이트가 쓰여 있다고 가정 해 봅니다. 단일 CPU가있는 시스템에서 커널 선점없이 컴파일 된 커널의 작성자 중첩이 가능합니까? – MirkoBanchi

+1

@MirkoBanchi 나는 당신의 질문이 무엇인지는 잘 모르겠다. 그렇지만 제대로 다루지 않으면 작가들은 스스로 겹칠 수있다. 2 개의 큰 파일을 2 개의 개별 쓰레드로 보내고, 완료 될 때까지 write()/send()를 반복해야하는 소켓을 통해 상상해보십시오. – shinkou

관련 문제