글쓴이 :김동광 2000년 1월 11일 13:04:36
In Reply to: 이번엔.. 서버가... posted by 김성희 on 2000년 1월 10일 20:52:42:
모든 하나의 클라이언트가 데이터를
전송하게 되면..
그 쿼리가 모두 끝나야만.. 서버는
다시 다음 데이터를 기다리게 됩니다.
그러니깐.. 일반적인 함수 콜을 생각하시면 되요..
스택으로 싸여가는 함수가 return되야지..
다음 처리가 가능하도록 되있듯이..
한번 readLine()을 한후에..
밑의 코드를 모두 실행 시켜야..
readLine()을 하는 식이라는것이죠..
그렇기 때문에.. 클라이언트 쪽에서는
5번을 보내두.. 차례차례 처리
결과가 오는 방식이죠..
일반적으로 모든 체팅같은 프로그램을 이런식으로
되있기 때문에 가끔씩 우루루~ 메시지가 몰려서
올라오게 되는것이죠..
만약.. 전송을 받아야될 데이터가
순차적일 필요가 없을 경우에는
readLine()후에 Thread를 띄워서..
처리하는 시간동안에.. 다른 쿼리를 받아 들이는
방식이죠.. 이럴 경우에.. 어떤것이 먼저 처리가
될지는 장담을 못하는 경우가
방생하고.. deadLock이 발생할 가능성도
그만큼 높아가는것이죠..
그러니.. 신중하게 처리하세요.. ^^;