쓰레드(thread)
Program : 실행 가능한 파일
Process : 실행 중인 프로그램, 자원+쓰레드로 구성
Thread : 프로세스내에서의 작업의 단위, 최소한 1개의 쓰레드가 존재한다.
- Multi Process보다 Multi Thread가 더 효율적이다.
장점 : 효율적, 응답속도 향상, 간결함
단점 : jvm이 대부분 알아서 처리해주기 때문에 교착상태에 주의하면된다.
사용법
Thread 객체를 생성해서 기동한다.(몇 개의 쓰레드를 사용할것인지 생각해야 한다.)
1-1. Thread Class를 상속하여 자신의 Thread Class를 생성한다.
1-2. run() 메소드를 구현
2-1. Runable이라는 인터페이스를 추가 상속
2-2. run() 메소드를 구현
2-3. Thread 객체를 생성하여 Runable을 전달
종류
일반 쓰레드 : 무한루프시 자바프로그램자체가 종료가 불가능하다.
데몬 쓰레드 : 무한루프시 자바프로그램 종료가 가능하다.(같이 종료된다)
- start() 호출전에 setDaemon(true)를 해 주면 데몬 쓰레드가 된다.
제어
join() : 다른 쓰레드의 수행이 끝날때까지 대기하거나 지정시간동안 대기
yield() : 다른 쓰레드에게 수행순서를 넘긴다.
interrupt() : 대기상태에서 벗어난다.
sleep() : 지정시간동안 대기
내부클래스(Inner Class)
멤버 클래스(인스턴스 클래스, 스태틱 클래스), 로컬 클래스(이름 있는 클래스, 없는 클래스)
Program : 실행 가능한 파일
Process : 실행 중인 프로그램, 자원+쓰레드로 구성
Thread : 프로세스내에서의 작업의 단위, 최소한 1개의 쓰레드가 존재한다.
- Multi Process보다 Multi Thread가 더 효율적이다.
장점 : 효율적, 응답속도 향상, 간결함
단점 : jvm이 대부분 알아서 처리해주기 때문에 교착상태에 주의하면된다.
사용법
Thread 객체를 생성해서 기동한다.(몇 개의 쓰레드를 사용할것인지 생각해야 한다.)
1-1. Thread Class를 상속하여 자신의 Thread Class를 생성한다.
1-2. run() 메소드를 구현
2-1. Runable이라는 인터페이스를 추가 상속
2-2. run() 메소드를 구현
2-3. Thread 객체를 생성하여 Runable을 전달
종류
일반 쓰레드 : 무한루프시 자바프로그램자체가 종료가 불가능하다.
데몬 쓰레드 : 무한루프시 자바프로그램 종료가 가능하다.(같이 종료된다)
- start() 호출전에 setDaemon(true)를 해 주면 데몬 쓰레드가 된다.
제어
join() : 다른 쓰레드의 수행이 끝날때까지 대기하거나 지정시간동안 대기
yield() : 다른 쓰레드에게 수행순서를 넘긴다.
interrupt() : 대기상태에서 벗어난다.
sleep() : 지정시간동안 대기
내부클래스(Inner Class)
멤버 클래스(인스턴스 클래스, 스태틱 클래스), 로컬 클래스(이름 있는 클래스, 없는 클래스)
댓글 없음:
댓글 쓰기