쓰레드
쓰레드는 프로세스내에서 작업을 하는 단위로 프로세스는 하나 이상의 쓰레드를 갖고 있습니다.
멀티쓰레드 프로그래밍
선언
1 | Runnable 변수이름 = new Runnable(){ |
2 | |
3 | public void run() { |
4 | |
5 | } |
6 | }; |
7 | Thread 변수이름 = new Thread(Runnable값); |
8 | |
9 | // example |
10 | Runnable todo = new Runnable() { |
11 | |
12 | public void run() { |
13 | |
14 | } |
15 | }; |
16 | Thread thread = new Thread(todo) |
Override
는 기존에 있는 코드를 재정의하는 것을 말합니다.
간단한 멀티쓰레드 프로그래밍
Thread.sleep(1000)
은 1초간 딜레이 시켜줍니다.- Runnable값을 넣어준 thread를 실행시킬 땐
.start()
를 사용합니다.
위와 같은 코드를 실행하여도 동시에 두 개의 쓰레드가 실행되지 않고, 첫번째 쓰레드가 모두 실행된 후에 두번째 쓰레드가 실행됩니다. 왜냐하면, 새로운 쓰레드를 만들어주는 코드 위에 첫 번째 쓰레드가 실행되고 있으므로,Thread thread
를 만나기 전까지는 단일쓰레드 프로그램이랑 같이 때문입니다. 따라서 순서를 바꿔줍니다.
Thread thread = new Thread()
로 돌아가는 쓰레드가 백그라운드 쓰레드이고, 우리가 일반적으로 코딩하던 부분은 메인쓰레드입니다.