스레드의 상태
1. new : 스레드가 생성된 상태 ( Thread th= new Thread();)
2. Runnable: 실행 가능한 상태로 start()를 호출한 후
3. Running : 실제로 스레드가 동작하고 있는 상태. run()수행중
4. Blocked : 스레드가 특정 이유로 잠시 멈춘 상태.Blocking 요청이 종료될때 까지 계속 수행됨.
5. Dead : Run()수행이 끝난상태.
Thread 주요 생성자
Thread 주요 메소드
1. sleep(long mills) : mills에 지정된 시간만큼 대기(1000이 1초)
2. getName() : 스레드의 이름 반환(String)
3. setName() : 스레드의 이름 지정 (void)
4. start() : 스레드 시작 (void)
5. getPriority() : 스레드의 우선순위 반환(int)
6. setPriority() : 스레드의 우선순위 지정(void)
7. join() : join()을 호출한 스레드가 종료할때까지 기다림(void) 스레드 실행 순서 제어
8. yeild() : 우선순위가 같은 다른스레드에게 제어권을 넘김(static void)
9. currentThread() : 현재 수행되는 스레드 객체 반환(static Thread)
public class Create_th extends Thread{
public void run(){ }
public static void main(String []args){
Create_th th= new Create_th(); // Thread th= new Create_th();
th.start():
}
}
public class Create_run implements Runnable{
public void run(){ }
public static void(String []args){
Create_run r = new Create_run();
Thread th = new Thread(r);
th.start();
}
}
: setPriority(1~10) 메소드를 통해 우선순위를 정할 수 있고, getPriority()메소드로 현재스레드의 우선순위를 조회할 수 있음.
: 숫자가 커질수록 우선순위가 높음.
: 순서를 정해주는것보단 스레드의 수행 빈도수를 높여주는 개념.
메소드 전체를 임계영역으로 지정
: 메소드 선언시 동기화 키워드를 정의하여, 메소드가 호출되면 메소드를 가지고 있는 객체에 락 (lock)을 걸어 작업을 수행하다가 메소드가 종료되면 반납.
특정영역만 임계영역으로 지정 Interrupted
: 성능의 효율성을 위해 가능하면 전체에 락(lock)을 거는 것보다는 최소화하여적 적용하는것이 효율적.
컴퓨터 사용자와 컴퓨터 하드웨어 간의 인터페이스로서 동작하는 시스템 소프트웨어의 일종
하드웨어, 소프트웨어 양쪽다 관리 및 운영.
종류
pc= Window, Linux, Solris,Bada,Unix...
모바일 = 안드로이드, ios
역할
버퍼 : 속도 차이나는 두 장치사이에 그 차이를 완화시키기 위해 사용하는 메모리
데이터가 전송되는 동안 머무는 임시저장소.
스풀 (Spool): CPU와 입출력 장치가 독립적으로 동작하도록 고안된 소프트 웨어 버퍼
CPU의 명령을 저장해서 주변 장치에 전달해줌.
캐시 : 메모리와 CPU간의 속도 차이를 완화하기 위해 데이터를 미리미리 저장해 두는 임시 메모리