728x90
어떤 스레드가 코드를 실행하는지 출력하기 위해 다음과 같이 긴 코드를 작성하는 것은 너무 번거롭다
System.out.println(Thread.currentThread().getName() + ": run()");
다음 예시와 같이 실행하면, 현재 시간, 스레드 이름, 출력 내용등이 한 번에 나오는 편리한 기능을 만들어보자.
log("hello thread");
log(123);
로거 만들기

- util 이라는 패키지를 사용했다. 프로젝트 전반에 사용되는 유틸리티라는 뜻이다.
- 현재 시간을 원하는 포멧으로 출력하기 위해 "DateTimeFormatter" 를 사용한다.
- printf 에서 "%s" 는 문자열을 뜻한다. 인자를 순서대로 사용한다. 여기서는 현재 시간, 스레드 이름, 출력할 객체 순서이다.
- 참고로 마지막의 출력할 객체는 문자열이 아니라 Object 타입인데, "%s" 를 사용하면 toString()을 사용해서 문자열로 변환 후 출력한다. 이렇게 Object 타입을 사용하면 문자열 뿐만 아니라 객체도 출력할 수 있다.
- "%9s"는 다음과 같이 문자를 출력할 때 9칸을 확보한다는 뜻이다. 9칸이 차지 않으면 왼쪽에 그 만큼 비워둔다. 이 기능은 단순히 출력시 정렬을 깔끔하게 하려고 사용한다.
- 예) [ main]` : 앞에 5칸 공백 , [ Thread-0] : 앞에 1칸 공백

- 사용할 때는 지금과 같이 import static 을 사용하면 메서드 이름만으로 간단히 사용할 수 있다.
-
스레드를 학습할 때는 스레드 이름, 그리고 해당 스레드가 언제 실행되었는지 확인하는 것이 중요하다.
728x90
'멀티스레드와 동시성' 카테고리의 다른 글
| Ch02. 스레드 생성과 실행 -Runnable을 만드는 다양한 방법 (0) | 2024.08.01 |
|---|---|
| Ch02. 스레드 생성과 실행 - 여러 스레드 만들기 (0) | 2024.08.01 |
| Ch02. 스레드 생성과 실행 - 스레드 생성(Runnable) (0) | 2024.08.01 |
| Ch02. 스레드 생성과 실행 - 데몬 스레드 (0) | 2024.08.01 |
| Ch02. 스레드 생성과 실행 - 스레드 시작 (0) | 2024.07.23 |