'Back-End/Java_2'에 해당되는 글 6건

donaricano-btn

Thread 만들기 -  To create Threads


1. Thread 생성

1)  Thread클래스를 서브 클래싱해서 run()를 오버라이드 하는 방법

2) Runnable 인터페이스 구현하여 Runnable 객체를 Thread 생성자로 전달하는 방법


2. Thread의 run()

- 스레드의 시작과 끝이다.

- 단일 스레드는 main()가 반환될 때 종료되고 멀티 스레드는 run()메소드가 반환될 때 종료된다.


3. Thread클래스 서브 클래싱 하는법

- FileOutputStream 을 이용하여 여러 파일을 생성하는 스레드

- main() 에서 파일 명의 갯수 만큼 thread를 생성한다.

- 생성자를 이용하여 스레드에 정보를 전달 했다.

1) 서브 클래싱 주의

- Thread의 서브 클래스를 만들었다면, run() 이 외에는 아무것도 오버라이드 해선 안된다.

- 다른 메소드(start(), interrupt()...)  특별한 목적이나 가상머신과의 통신에 사용된다.


4. Runnable 인터페이스 구현

- 서브 클래싱과 비슷하지만 객체를 전달받아 thread를 생성하는 방법만 다르다

블로그 이미지

리딩리드

,
donaricano-btn

InputStream  - 입력스트림


1. java.io.InputStream

- 자바에서 제공하는 기본 입력 클래스이다.

- 바이트 데이터를 읽는데 사용한다.

- 서브 클래스로 인스턴스를 작성해도 InputStream으로 반환된다(다형성)

1) FileInputStream : 파일로부터 데이터를 읽는데 사용

2) TelnetInputStream : 네트워크 연결로 부터 읽음

3) ByteArrayInputstream : 바이트 배열로 부터 읽음


2. read() 

- InputStream의 기본 메소드

- 단일바이트를 읽으며 0~255 사이의 정수 타입을 반환한다.

- 스트림이 끝에 도달하면 -1을 반환 한다.

- 추상 메소드로 선언되어 있어 서브클래스(ByteArrayInput....등)에서 수정할 필요가 있다.

- int 타입을 반환한다.

- 1byte 씩 읽는 것은 매우 비효율적이다 그래서 배열로 한번에 반환하는 read() 함수가 있다.


3. read(byte[] input), read(byte[] input, int offset, int length)

- read(byte[] input) : 배열의 크기만큼 읽는다.

- read(byte[] input, int offset, int length) : offset 부터 length까지 읽는다.

- 스트림의 끝에 도달하면 -1을 반환한다.

- 위 소스는 네트워크 스트림에서 자주사용된다.(실제 읽고자 하는 바이트의 크기가 보장되어야 하는 상황에서 사용)



블로그 이미지

리딩리드

,