19일차 09/16 2022

SangYu Lee·2022년 9월 17일
0

codestates backend

목록 보기
19/30

Keyword - Thread, JVM

1. 스레드(Thread)

스레드의 생성과 실행

  1. Runnable 인터페이스를 구현한 객체에서 run()을 구현하여 스레드를 생성하고 실행

  2. Thread 클래스를 상속 받은 하위 클래스에서 run()을 구현하여 스레드를 생성하고 실행

  3. 익명 객체를 사용하여 스레드 생성하고 실행하기

  • Runnable 익명 구현 객체를 활용한 스레드 생성 및 실행
  • Thread 익명 하위 객체를 활용한 스레드 생성 및 실행

스레드의 정보
getName(), setName(), Thread.currentThread

스레드의 동기화
여러 스레드는 각각의 stack을 가지지만, heap 영역의 데이터는 공유한다. 여러 스레드가 동시에 heap 영역의 데이터에 접근하고 변경하면서, 여러가지 오류와 충돌의 가능성이 존재한다. 그러기 위해서 synchronized 키워드를 메서드이름에 붙이거나 synchronized(this) 블럭을 통해 스레드 간에 동기화를 유도할 수 있다. 데이터에 임계영역을 설정하기 보다는, 스레드 간에 락(lock)을 통해 데이터 접근 권한을 제어한다고 생각할 수 있다.

2. 자바 가상 머신(Java Virtual Machine)

https://velog.io/@cws0718/cb11 나의 이전 글에 자세히 설명되어 있다.

profile
아이스커피

0개의 댓글