0%

Javamultithread

쓰레드

쓰레드는 프로세스내에서 작업을 하는 단위로 프로세스는 하나 이상의 쓰레드를 갖고 있습니다.

멀티쓰레드 프로그래밍

선언

1
Runnable 변수이름 = new Runnable(){
2
  @Override
3
  public void run() {
4
    
5
  }
6
};
7
Thread 변수이름 = new Thread(Runnable값);
8
9
// example
10
Runnable todo = new Runnable() {
11
  @Override
12
  public void run() {
13
    
14
  }
15
};
16
Thread thread = new Thread(todo)

Override는 기존에 있는 코드를 재정의하는 것을 말합니다.

간단한 멀티쓰레드 프로그래밍

image

  • Thread.sleep(1000)은 1초간 딜레이 시켜줍니다.
  • Runnable값을 넣어준 thread를 실행시킬 땐 .start()를 사용합니다.
    위와 같은 코드를 실행하여도 동시에 두 개의 쓰레드가 실행되지 않고, 첫번째 쓰레드가 모두 실행된 후에 두번째 쓰레드가 실행됩니다. 왜냐하면, 새로운 쓰레드를 만들어주는 코드 위에 첫 번째 쓰레드가 실행되고 있으므로, Thread thread를 만나기 전까지는 단일쓰레드 프로그램이랑 같이 때문입니다. 따라서 순서를 바꿔줍니다.

image

  • Thread thread = new Thread()로 돌아가는 쓰레드가 백그라운드 쓰레드이고, 우리가 일반적으로 코딩하던 부분은 메인쓰레드입니다.