1. Thread Class와 Runnable Interface 구현 2가지 방법 존재
- Thread Class 상속 시 다른 Class 상속 불가
- Runnable Interface 구현 시 다른 Class 상속 가능
출처 : https://docs.oracle.com/en/java/javase/18/docs/api/java.base/java/lang/Thread.html
2. start()와 run() 호출 차이
- thread의 run()을 호출하는 것은 class에 선언된 메서드를 호출하는 것
- start()를 호출하는 것은 새로운 thread가 작업을 실행하는데 필요한 call stack을 생성하고, run()을 호출해서 생성된 call stack에 run()이 첫 번째로 올라가게 됨
3. 데몬 스레드(daemon thread)
- 일반 스레드의 작업을 돕는 보저 역할
- 일반 스레드가 종료되면 데몬 스레드는 강제 종료
- "thread변수명".start(); 를 호출하기 전 "thread변수명".setDaemon(boolean 값); 을 해야 데몬 스레드로 지정
4. sleep() 사용법(?)
- "thread변수명".sleep(~~); 으로 선언해도 되나 sleep() 메소드는 static 메소드이기 때문에 내가 지정한 스레드가 현재 실행중인 thread가 아니라면 main thread가 영향을 받음
- Thread.sleep(); 으로 호출해야 의미 전달에 혼선이 없음
'언어 > JAVA' 카테고리의 다른 글
Java에서 SQL Server DB 연동 오류 1 : recent version of the Java (1) | 2024.01.05 |
---|---|
String의 JVM에 들어가있는 주소값 출력 (1) | 2023.12.17 |
executeQuery와 Fetch size (0) | 2023.12.13 |
class 초기화 블럭(initialization block) (0) | 2023.09.10 |
인스턴스 변수와 this (0) | 2023.09.10 |