start() : 스래드를 실행 대기 상태로 만든다 sleep(long milliSecond) : milliSecond 동안 스레드를 잠시 멈춘다 interrupt() : 일시 중지 상태인 스레드를 실행 대기 상태로 복귀시킨다 yield() : 다른 스레드에게 실행을 양보한다 join() : 특정 스레드가 작업하는 동안에 자신을 일시 중지 상태로 만든다 notify(), wait() : 스레드 간 협업에 사용
싱글 스레드 프로세스 : 데이터에 단 하나의 스레드만 접근하기 때문에 상관없음 멀티 스레드 프로세스 : 두 스레드가 동일한 데이터를 공유하게 되어 문제 발생 가능성 존재함 하나의 계좌에서 현금을 출금한다고 가정한다 더보기 package 스레드; public class Main { public static void main(String[] args) { Runnable threadTask = new ThreadTask(); Thread thread1 = new Thread(threadTask); Thread thread2 = new Thread(threadTask); thread1.setName("김이룸"); thread2.setName("이자바"); thread1.start(); thread2.start..
메인 스레드는 main이라는 이름을 가지며, 그 외에 추가적으로 생성한 스레드는 "Thread-n"이라는 이름을 갖는다 스레드 이름 조회하기 .getName() public class Main { public static void main(String[] args) { Thread thread = new Thread(new Runnable() { public void run() { System.out.println("Get Thread Name"); } }); thread.start(); System.out.println("thread.getName() = " + thread.getName()); } } // 출력 Get Thread Name thread.getName()=Thread-0 스레드 이름 설..
애플리케이션을 실행하면 운영체제로부터 실행에 필요한 만큼의 메모리를 할당받아 프로세스가 된다 프로세스는 데이터, 컴퓨터 자원, 그리고 스레드로 구성된다 스레드는 데이터와 애플리케이션이 확보한 자원을 활용하여 소스 코드를 실행한다 스레드는 하나의 코드 실행 흐름이다 메인 스레드 (Main thread) 자바 앱을 실행하면 가장 먼저 실행되는 메서드는 main이다. 메인 스레드가 main 메서드를 실행시켜준다 멀티 스레드 (Multi-Thread) 하나의 프로세스는 여러 개의 스레드를 가질 수 있다 여러개의 스레드를 가진다는 것은 여러 스레드가 동시에 작업을 수행할 수 있음을 의미한다 멀티 태스킹을 구현하는데 핵심적인 역할을 한다 작업 스레드 생성과 실행 별도의 작업 스레드를 활용하려면 작업 스레드가 수행할..