thread 환경에서 socket 사용
글쓴이: rbosc / 작성시간: 금, 2007/03/30 - 9:59오전
안녕하세요..
client 측에서 connect() 완료후 return 되는 fd 값을 2 개의 thread 가 각각 send 와 recv 를 분담해서 하고자 할 때, 문제가 없는지요?
send 를 여러 thread 가 한다거나, recv 를 여러 thread 를 하는 경우에는 lock 을 걸어서 한놈만 접근하도록 해야하는건 맞는것 같은데요..
2개의 thread 가 비록 하나의 fd 를 보고 있지만, send 와 recv 를 분담한다면 lock 을 걸지 않아도 되는건 아닌가 싶어서 질문 드립니다.
Forums:
제가 지금 그런
제가 지금 그런 방식으로 개발을 하고 있습니다. 소켓당 receiver는 하나씩 있고, sender는 여러개가 존재 할 수 있는 구조입니다. write()가 thread safe 하다는 말은 어디서 얼핏 들은것 같은데 저는 writen()이라는 wrapping 함수를 사용해서 지정한 길이만큼 write를 못했을때 다시 write()를 호출하도록 되어있어서 sender가 소켓에 write 하기 전에 뮤텍스를 잠그고 사용하도록 했습니다. receiver는 하나만 있기 때문에 별도의 lock을 걸지는 않고요.
======================
BLOG : http://superkkt.com
======================
BLOG : http://superkkt.com
둘다 thread로 돌려서 얻는 이득은 무언가요?
기본적으로 receiver는 thread로 돌려야 하겠지만, sender까지 thread로 돌려서 얻는 이득이 무엇인가요?
cpu가 2개이상이면
cpu가 2개이상이면 상황이 달라지죠
댓글 달기