[Java / 자바]쓰레드 처리 (Thread)

공부/Java  2015.06.05 22:09

안녕하세요. 명월입니다.
이번 포스트는 스레드(Thread)에 대해 공부하겠습니다.


스레드(Thread)란 프로세스 안에서 움직이는 가장 최소 단위의 실행단위라고 정의되어있습니다. 조금 어려운 말인데 제가 조금 풀이하면 프로그램을 실행하면서 병렬처리를 하는 클래스라고 풀이하고 싶네요. 역시 설명이 어려우니 예제를 통해서 공부하겠습니다.



링크 - [Java / 자바] 소켓 통신 (Socket)


위 소스는 소켓 프로그램의 소스입니다. 소켓 프로그램에서 우리가 통신할 때 하나 이상의 클라이언트를 받을 수가 없습니다. 순서대로 Listen을 대기하고 접속을 하면 소스의 절차순서에 의해 아래쪽으로 내려갑니다. 쉽게 말해 메시지 보내기 처리인데 server.accept()에 다시 걸리지 않는 설명입니다.
그러나 우리가 실제 웹서버던가 많은 서버프로그램을 보면 하나의 클라이언트만 접속되는 것이 아니고 다중 접속이 가능한 형태가 됩니다.
이때의 다중 접속을 가능하게 하는 것, 다시 말해 한곳에서는 Listen대기를 계속하고 병렬단위로 클라이언트와 송수신하게 하는 처리를 스레드처리, 병렬처리라고 합니다.



이전 소스와 비교를 하면 main에서 send, receive 부분을 다 스레드로 넘겼습니다. 다시 말해서, accept(클라이언트랑 연결)되면 병렬로 스레드를 만드는 형태입니다. 스레드를 만들고 while(true)를 타고 다시 Listen상태로 돌아옵니다.
다음은 클라이언트 소스입니다.



기존 소스와 크게 달라진 건 없고 송수신 순서만 차이를 두었습니다.


github 소스 링크 - 소스 링크

-------------------------------------------블로그 개선 중입니다.-------------------------------2016년 03월 31일--


댓글 0개가 달렸습니다.
댓글쓰기