
눈을 한 번 깜빡이는 시간 -> 순간이동할 수 있다면
한국과 미국을 0.01초마다 왔다갔다 하면서 시험을 칠 수 있다.
물론 감독관의 눈은 속일 수 있지만
0.01초마다 움직이기도 힘들고 시험 문맥을 파악하기도 힘들다. 혼란스럽다.
여기서 문맥은 Context 전후사정.
길동이가 카페에서 기다리고 있고
영희와 철수가 영화이야기를 하면서 다가와 갑자기 영희가 길동이에게 넌 어떻게 생각하냐 물으면
길동이는 띠용? 뭘? ... 문맥을 파악할 수 없겠지?


멀티스레드 : 왔다 갔다 굉장히 빠르게 하면서 눈을 속일 수 있다.
하나의 CPU가 두 가지 이상의 일을 동시에 하는 것
자바는 메인 스레드 하나만 가지고 있다.
단일 스레드
스레드 실습으로 이해하기
1초씩 쉬었다 일하도록 Thread를 사용해보자.
try-catch 구문으로 감싸주면 사용 가능.
1초마다 콘솔에 작업이 출력된다.


💡 자바 서브 스레드 만들기
Runnable 인터페이스를 구현하는 서브 스레드 클래스를 만들어준다.
메서드를 오버라이드 해서 내용은 메인 스레드의 내용과 같이 작성해준다.


서브스레드를 new 하고 스레드 객체에 서브스레드를 타겟으로 설정하여 new 한다음
스레드 객체를 시작하는 메서드를 실행한다.

위 코드에서 main 메서드는 22~25 를 실행하면 종료된다.
22번 라인 - SubThread 객체 생성 : 메모리에 SubThread 클래스 올리기
23번 라인 - Thread 객체 생성 : Runnable 타입 타겟을 설정하여 스레드 객체를 생성
스레드는 여러 타입을 매개변수로 받도록 오버로딩 되어있다.
Runnable 타입을 받는 스레드가 작성되어 있기 때문에
타겟을 Runnable 타입을 받은 SubThread 로 설정해준다.
t1이 heap 공간에 생긴다.
24번 라인 - run 메서드 실행 : 8번 라인 실행. 기다리지 않고 바로
25번 라인 - for 문 실행
8번 라인과 25번 라인이 동시에 실행되어
빠르게 왔다갔다 하면서 작업이 실행된다.


'Language > Java' 카테고리의 다른 글
| 예외처리(Exception) : try-catch (0) | 2023.04.07 |
|---|---|
| 동기적 실행 vs 비동기적 실행 (0) | 2023.04.07 |
| 컬렉션(Collection) - ArrayList (0) | 2023.04.06 |
| 제네릭(Generic), 와일드카드<?> (0) | 2023.04.06 |
| Object Class (0) | 2023.04.06 |