JAVA (360) 썸네일형 리스트형 getState(), 스레드의 상태 확인하기 스레드의 상태는 getState()메서드를 통해 확인할 수 있다. NEW 스레드가 생성됨. start()가 호출되지않은 상태 RUNNABLE 실행 중 또는 실행가능한 상태 BLOCKED 동기화블럭에의 의해 일시정지된 상태 WAITING 작업이 종료되지는 않았으나 일시정지상태 TIMED_WAITING 작업이 종료되지는 않았으나 일시정지상태 + 일시정지시간이 지정된 경우 TERMINATED 작업이 종료된 상태 두 개의 스레드를 생성하고, 스레드의 상태를 확인하여 그에 맞는 동작을 수행하는 방법이다. public class ThreadStateExample { public static void main(String[] args) { Thread thread1 = new Thread(() -> { try { T.. 로그 파일을 주기적으로 청소하기, 데몬 스레드의 구현과 실행 데몬 스레드는 다른 일반스레드의 작업을 돕는 보조적인 역할 일반스레드가 모두 종료되면 데몬 스레드는 강제적으로 종료된다. 데몬스레드의 예로는 가비지 컬렉터, 워드프로세서의 자동저장, 화면자동갱신 등이 있다. 무한루프와 조건문을 이용해서 실행 후 대기하고있다가 특정 조건이 만족되면 작업을 수행하고 다시 대기한다. 일반스레드와 작성, 실행방법이 같으나 실행하기전에 setDaemon을 호출하기만하면된다. https://standout.tistory.com/1421 스레드 구현과 실행 + 싱글쓰레드와 멀티쓰레드: start()와 run() 앞서 스레드에 대해 알아봤다. 프로세스는 공장이라면 스레드는 일꾼이라 생각하면 된다. https://standout.tistory.com/498 프로세스/스레드 방식 프로세스.. 보안상의 이유로 도입된 스레드 그룹: 서로 관련된 스레드를 그룹으로! 스레드 그룹은 서로 관련된 스레드를 그룹으로 다루기 위한 것. 스레드그룹은 보안상의 이유로 도입된 개념 자신이 속한 스레드 그룹이나 하위 스레드 그룹이 아니라면 다른 스레드 그룹의 스레드는 변경할 수 없다. ThreadGroup(Spring name) 지정된 이름을 가진 새로운 스레드 그룹을 만듭니다. 이 생성자를 사용하면 새로운 스레드 그룹을 만들고 해당 그룹의 이름을 설정할 수 있습니다. ThreadGroup group = new ThreadGroup("ExampleGroup"); System.out.println("Thread group created with name: " + group.getName()); 출력 결과 예시:Thread group created with name: ExampleGr.. 스레드의 우선순위 setPriority() 앞서 스레드를 생성하여 start해 봤다. https://standout.tistory.com/1421 스레드 구현과 실행 + 싱글쓰레드와 멀티쓰레드: start()와 run() 앞서 스레드에 대해 알아봤다. 프로세스는 공장이라면 스레드는 일꾼이라 생각하면 된다. https://standout.tistory.com/498 프로세스/스레드 방식 프로세스: 공장 스레드: 일꾼 프로세스 방식 매번 새로 standout.tistory.com 이때 두 개의 쓰레드가 서로 독립적으로 실행되기 때문에 종료 메시지가 어떤 순서로 출력될지 정확히 예측할 수 없다. 종료 메시지는 실행 환경 및 운영 체제에 따라 다를 수 있다. 라는것을 알게되었는데 우선순위를 정할 수 있을까? 스레드의 우선순위는 스레드 스케줄러에게 해당 .. 스레드 구현과 실행 + 싱글쓰레드와 멀티쓰레드: start()와 run() 앞서 스레드에 대해 알아봤다. 프로세스는 공장이라면 스레드는 일꾼이라 생각하면 된다. https://standout.tistory.com/498 프로세스/스레드 방식 프로세스: 공장 스레드: 일꾼 프로세스 방식 매번 새로운 프로세스를 생성하여 처리하는 방식 멀티태스킹을 지원하지만 메모리 사용량이 더 크고, 프로세스 간의 통신이 필요하기 때문에 오버 standout.tistory.com https://standout.tistory.com/634 멀티 프로세스와 멀티 스레드 앞서 프로세스와 스레드에 대해 알아봤다, 필요하다면 다시 복습해보자. https://standout.tistory.com/498 프로세스/스레드 방식 프로세스 방식 매번 새로운 프로세스를 생성하여 처리하는 방식 멀티태 standout.t.. @interface 나만의 애너테이션 만들기 `MyAnnotation`이라는 애너테이션을 정의해보자. import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; // 애너테이션의 유지 정책을 RUNTIME으로 설정 // 애너테이션 정보가 런타임 시에도 유지되도록 @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE, ElementType.METHOD}) // 애너테이션을 클래스와 메서드에 적용할 수 있도록 설정 -> `ElementType.TYPE`은 클래스에, `E.. Annotation - @Repeatable @Repeatable 같은 애너테이션을 여러 번 사용할 수 있도록 허용한다. Java 8부터 도입되었습니다. import java.lang.annotation.Repeatable; @Repeatable(MyAnnotations.class) @interface MyAnnotation { // 애너테이션 내용 } @interface MyAnnotations { MyAnnotation[] value(); } Annotation - @Retention @Retention 애너테이션이 유지되는 기간을 지정한다. 소스 코드, 클래스 파일, 런타임 시점 중 어느 시점까지 애너테이션 정보를 유지할 것인지를 설정할 수 있습니다. import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; @Retention(RetentionPolicy.RUNTIME) @interface MyAnnotation { // 애너테이션 내용 } 이전 1 ··· 7 8 9 10 11 12 13 ··· 45 다음