스레드(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

+ Recent posts