728x90
반응형
자바프로세스란?
실행중인 하나의 프로그램
스레드란?
프로세스 내에서 실제 작업을 수행하는 작업 단위
모든 프로세스는 하나 이상의 스레드를 가짐
프로세스 종료
싱글 스레드의 경우 메인 스레드가 종료하면 프로세스도 종료
멀티 스레드의 경우 실행중인 스레드가 하나라도 있다면 프로세스가 종료되지 않음
멀티 스레드의 장점
1. 자원을 보다 효율적으로 사용할 수 있음
2. 사용자에 대한 응답성이 향상
3. 작업이 분리되어 코드가 간결
멀티 스레드의 단점
1. 동기화에 주의해야 함
2. 교착상태가 발생하지 않도록 주의해야 함
3. 프로그래밍시 고려사항이 많음
스레드의 생성
1. Thread클래스를 상속받아 직접 생성
[표현식]
class 클래스명 extends Thread {
@Override
public void run() {
//실행에 필요한 소스
}
}
public class Run{
public static void main(String[] args){
클래스명 레퍼런스 = new 생성자();
레퍼런스.start();
}
}
2. Runnable인터페이스를 상속받아 생성
[표현식]
class 클래스명 implements Runnable {
@Override
public void run() {
//실행에 필요한 소스
}
}
public class Run{
public static void main(String[] args){
클래스명 레퍼런스 = new 생성자();
Thread thread = new Thread(레퍼런스);
thread.start();
}
}
스레드의 우선순위
스레드레퍼런스.setPriority(우선순위값); //1~10까지 값을 가질 수 있으며, 기본값은 5
스레드의 상태
스레드는 Runnable(실행, 실행대기), Waiting, Timed-Waiting, Blocked(일시정지의) 상태를 가짐
동기화(synchronized)
한번에 한 개의 쓰레드만 객체에 접근할 수 있도록 객체에 락을 걸어서 데이터 일관성을 유지하는 것
데몬스레드
주 스레드의 작업을 돕는 보조적인 역할을 수행하는 스레드
주 스레드가 종료되면 데몬 스레드는 강제적으로 자동 종료됨
반응형
'프로그래밍 > JAVA' 카테고리의 다른 글
04.27(GUI) (0) | 2020.04.27 |
---|---|
04.24(서버와 클라이언트 / TCP 소켓 프로그래밍 순서) (0) | 2020.04.24 |
04.22(예외 처리/ IO/ Collection/ Generics) (0) | 2020.04.22 |
04.21(IO 예제로 정리하기) (0) | 2020.04.21 |
04.20(URL예제 - 웹 상의 이미지 파일 다운로드) (0) | 2020.04.20 |