Thread(4)
-
[Java] 스레드(Thread) - wait(), notify() 활용 예제
리소스가 어떤 조건에서 더 이상 유효하지 않은 경우 리소스를 기다리기 위해 Thread가 wait() 상태가 된다 wait() 상태가 된 Thread는 notify()가 호출될 때까지 기다린다 유효한 자원이 생기면 notify()가 호출되고 wait()하고 있는 Thread 중 무작위로 하나의 Thread를 재시작한다 notifyAll()이 호출되는 경우 wait() 하고 있는 모든 Thread가 재시작된다 notifyAll()이 호출되는 경우 유효한 리소스만큼의 Thread만이 수행되며 자원을 갖지 못한 Thread는 다시 wait() 상태로 돌아간다 자바에서는 notifyAll() 메서드의 사용을 권장한다 도서관에 자리가 부족해 기다리는 경우를 가장한 코딩 예제 notify()를 사용하는 경우 imp..
2022.02.27 -
[Java] 스레드(Thread) 종료하기 예제
무한 반복하는 스레드를 만들고 종료하는 예제를 작성해보자. 세 개의 thread를 만든다 'A'를 입력받으면 첫 번째 thread를 종료한다 'B'를 입력받으면 두 번째 thread를 종료한다 'C'를 입력받으면 세 번째 thread를 종료한다 'M'을 입력받으면 모든 thread와 main() 함수를 종료한다 무한 반복의 경우 while(flag)의 flag 값을 false로 바꿔서 반복문을 나간다. 스레드 종료하기 예제 import java.io.IOException; public class TerminateThread extends Thread { private boolean flag = false; int i; public TerminateThread(String name) { super(name..
2022.02.27 -
[Java] 스레드(Thread) 우선순위 - (MIN, NORM, MAX)_PRIORITY
자바 Thread 클래스에는 스레드의 우선순위를 정할 수 있는 메서드가 있다. Thread.MIN_PRIORITY(=1) ~ Thread.MAX_PRIORITY(=10) 디폴트 우선순위 : Thread.NORM_PRIORITY(=5) 우선순위가 높아진다고 무조건 높아지는 것이 아니라 높아질 확률이 올라가는 것이다 setPriority() / getPriority() Thread 우선순위 예제 class PriorityThread extends Thread { public void run() { Thread t = Thread.currentThread(); System.out.println(t + "start"); System.out.println(t.getPriority() + "end"); } } pu..
2022.02.27 -
[Java] 스레드(Thread) 개념 정리 - sleep(), wait(), join()
스레드의 개념 프로세스(process)란? 프로세스(process)란 단순히 실행 중인 프로그램(program)이라고 할 수 있다. 즉, 사용자가 작성한 프로그램이 운영체제에 의해 메모리 공간을 할당받아 실행 중인 것을 말한다. 이러한 프로세스는 프로그램에 사용되는 데이터와 메모리 등의 자원 그리고 스레드로 구성된다. 스레드(thread)란? 스레드(thread)란 프로세스(process) 내에서 실제로 작업을 수행하는 주체를 의미한다. 모든 프로세스에는 한 개 이상의 스레드가 존재하여 작업을 수행한다. 또한, 두 개 이상의 스레드를 가지는 프로세스를 멀티스레드 프로세스(multi-threaded process)라고 한다. 멀티 스레딩(multi-threading) 하나의 프로세스 내에서 둘 이상의 th..
2022.02.27