프로세스 - 운영체체로 부터 자원을 할당받는 작업의 단위
스레드 - 프로세스가 할당받은 자원을 이용하는 실행의 단위
프로세스가 작업공간(메모리)을 할당 받으면 그 작업공간에서 스레드들이 열심히 일을 한다고 생각하면 될 듯 하다.
java에서 기본적으로 1개의 스레드만 사용을 한다.
동시에 다른 작업을 하고 싶다면 Thread 클래스를 사용하여 스레드를 추가할 수가 있다.
public class A extends Thread{
@Override
public void run(){
for(int i=0; i < 5; i++){
sysout(i + "호출됨");
try{Thread.sleep(500);}catch(Exception e) {}
}
}
public static void main(String[] args){
Thread thread = new A();
thread.start();
for(int i=0; i < 5; i++{
sysout("메인 호출" + i);
try{Thread.sleep(500);}catch(Exception e) {}
}
}
이런식으로 작성하게 되면 순차적인 동작이 아닌 동시에 작동하는 것을 알 수 있다.
대신 스레드끼리의 공유되는 자원은 전역번수라는 것을 인지하고 있어야한다.