Group Study 03/23
참가자 : 김도윤, 최교득, 이동헌
활동내역
1. 파일 전송 프로그램 확장 (FileSendServer.java)
- 목표 : thread 사용하여 소켓 연결 순서와 상관없이 파일을 전송받을 수 있게 코드를 변경해보자.
- 코드
에러 발생 : wile 문에 try~catch 를 적용해서 에러 해결
에러 발생 :에러 코드
에러 해결코드
- 더 생각해봐야할 내용
- socket에 @cleanup을 사용 시 클라이언트에서 read가 되지 않는 상황이 발생⇒ 닫아줘야하는 것까진 알겠어? 근데 왜 이렇게 해야 하지? 어떻게 해야 하는 거 징?
- ⇒ 어노테이션의 기능을 사용하지 않고 일일이 close()를 하니까 에러 해결
- 변경내용 :
- 사용자가 동시에 서버를 접속하여 로드할 수 있도록 병렬식 구성으로 변경 → thread 사용!
- Blocked I&O → Non-Blocked I&O
2. 프로세스와 스레드
- UTF-8은 유니코드를 인코딩(encoding)하는 방식이다.
- DataInput / DataOutputDataOutputStream 은 OutputStream 표현 가능한 범위가 넓다 DataOutputStream 은 OutputStream의 하위 개념이다
- OutputStream 은 byte 로만 데이터를 전송하는 반면 DataOutputStream은 문자열을 보내는 것도 가능하다
- DataOutputStream vs OutputStream 확장의 의미가 공간의 확장? 데이터를 보낼 수 있는 크기도 해당이 되는가?
- Process
동작하고 있는 프로그램을 프로세스(Process)라고 한다
일반적으로 프로그램을 "실행" 시켜서 동작하게 만들면 이것을 "프로세스"라고 한다.
우리가 실행시키는 하나의 프로그램은 하나의 프로세스로서 나타나게 된다.
(ex : 이클립스를 새 창으로 2개를 띄웠다면, 2개의 프로세스가 실행 중이라 말할 수가 있다
여러 프로그램을 실행시키는 것은 멀티 프로세스라고 한다
우리가 컴퓨터를 하는데 보통 워드 작업하면서 음악도 듣고,
간간이 카톡도 하듯이 여러 프로그램을 동시에 실행하는 것을 말한다 - Thread자바는 모든 프로그램은 기본적으로 스레드를 이용해서 동작한다
- 보통 한 개의 프로세스는 한 가지의 일을 하지만, 스레드를 이용하면 한 프로세스 내에서 두 가지 또는 그 이상의 일을 동시에 할 수 있다.
프로세스에는 최소한 하나의 스레드가 존재한다 스레드가 두 개 이상이면 이것을 멀티 스레드(Multi- Thread)라고 한다
- Thread(스레드)와 프로세스의 차이점 둘 이상의 스레드로 구성된 프로세스도 존재하는 데 이것을 멀티 스레드 프로세스라고 한다
- 프로세스는 운영체제로부터 작업을 할당받는 작업의 단위이고, 스레드는 프로세스가 할당받은 자원을 이용하는 실행의 단위이다.
'Group_Study' 카테고리의 다른 글
Group Study 03/25 (0) | 2022.03.27 |
---|---|
Group Study 03/24 (0) | 2022.03.25 |
2022.03.22 Group Study (0) | 2022.03.23 |