스레드(thread) : 프로그램의 명령처리 흐름
프로세스 : 프로그램 실행의 최소 단위 (프로세스는 최소 하나의 스레드를 가짐)
병렬처리 : (두개이상의 명령문장을 동시에 수행)
병렬처리를 구현하는 방법
1. 다중 프로세스
: 다중 프로세스는 각 프로세스가 별도의 메모리 공간을 할당 받기 때문에 각 프로세스간에 데이터를 어떻게 주고 받을 것 인지가 이슈(IPC)
2. 다중 스레드
: 다중 스레드에서는 각 스레드(명령처리흐름)들이 하나의 프로세스안에서 공통된 메모리 공간을 공유하기 때문에 교통정리가 이슈
스레드 클래스 상속 방법
스레드는 Thread 클래스가 담당 -> 파생 스레드 ->run함수를 한번 실행하는 작업을 수행
Thread객체의 start메소드가 호출되면 새로운 명령처리흐름이 생성됨
프로그램이 실행되면 처음 만들어지는 기본스레드(main thread)는 메인함수를 한번 실행하는 작업을 수행
Runnable 인터페이스를 구현하는 방법
class CountDownThread implements Runnable {
public void run() {
for (int i = 20; i > 0; i--) {
System.out.println(i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
public class RocketTest {
public static void main(String[] args) {
Thread t1 = new Thread(new CountDownThread());
Thread t2 = new Thread(new Test2());
t1.start();
t2.start();
}
}
동기화 : 한 번에 하나의 스레드 만이 공유 데이터를 접근할 수 있도록 제어하는 것이 필요
synchronized : 한순간에 하나의 스레드만을 허용
wait() : 대기소 가서 잠자는 아이
notifyAll() : 대기소 가서 잠자는애 깨우기
' IOT 기반 응용 SW과정 > Java, Eclipse ' 카테고리의 다른 글
Day21 입출력 / 네트워크 프로그래밍 (0) | 2016.04.11 |
---|---|
Day20 입출력 (0) | 2016.04.08 |
Day18 예외처리 (0) | 2016.04.06 |
Day17 제네릭과 컬렉션 (0) | 2016.04.05 |
Day16 패키지 (0) | 2016.04.04 |