java/Thread
-
[Thread] InterruptedException과 인터럽트 상태java/Thread 2022. 6. 12. 16:18
스레드의 인터럽트 메카니즘과 인터럽트 상태에 대하여 정리했다. 인터럽트라는 단어에서 뭔가 중단하다.방해하다라는 느낌이 애매해서 이해하기 어려웠던 것 같다. 특정 스레드에 인터럽트를 건다라는 의미 = 스레드가 일시정지 상태인 경우 또는 일시정지에 들어가려는 스레드인 경우 쉬지 못 하게 하는 기능이다. 스레드 인터럽트 메카니즘을 이해하기 위해 아래의 개념들을 보자. -- 스레드 인터럽트 플래그(상태) 스레드의 인터럽트 상태는 인터럽트 예외(InterruptedException)와 연관있는 플래그이다. // 1. thread변수에 해당하는 스레드의 인터럽트 상태를 체크한다.(인터럽트 상태를 변경하지 않고 확인만 한다) thread변수.isInterrupted(); // 2. 현재 스레드의 인터럽트 상태를 리턴..
-
Thread(5) synchronized를 이용한 스레드 동기화java/Thread 2021. 6. 8. 22:04
스레드의 작업 내용이 짧으면 우리가 원하는 결과가 나타나지 않을 가능성이 생기게 된다. 일단 이 문제가 다른 결과를 보이는 것은 뒤에 가서 설명하고 먼저 스레드의 동기화 필요성에 대해서 설명한다. 스레드의 동기화 한 스레드가 진행중인 작업을 다른 스레드가 간섭하지 못하게 하는것 동기화의 필요성 스레드간에는 공유하는 자원이 있기 때문에 이 공유자원들에 대하여 여러 스레드에서 동시에 작업하면 문제가 발생할 수 있다. 그렇게 떄문에 스레드의 동기화가 필요하다. 두 스레드에서 하나의 Counter객체를 공유해서 사용해서 발생하는 문제를 봐보자. 하나의 Counter 클래스는 count값과 count값을 1증가시키는 increase메서드가 있다. Counter sharedCounter= new Counter();..
-
[Thread] Daemon Threadjava/Thread 2021. 5. 27. 22:03
데몬 스레드는 일반 스레드의 작업을 돕는 보조적인 역할을 수행하는 스레드 일반 스레드가 모두 종료되면 데몬 스레드는 자동 종료된다. 일반 스레드의 보조역할을 수행하므로 일반 스레드가 없으면 존재의미가 없기 때문이다. 데몬 스레드- 가비지 컬렉터, 워드프로세서의 자동저장, 화면자동갱신 등이 있다. 데몬 스레드는 일반 스레드의 작성방법과 실행방법이 같으며 스레드를 생성한 후 실행전에 setDaemon(true)를 호출하기만 하면 된다. 데몬 스레드가 생성한 스레드는 자동적으로 데몬 스레드가 된다. 스레드가 데몬 스레드인지 일반 스레드인지 확인하는 메서드 스레드참조변수.isDaemon() -> boolean리턴 데몬 스레드는 무한루프와 조건문을 이용하여 실행 후 대기하고 있다가 특정 조건이 만족되면 작업을 수..
-
[Thread] Thread, ThreadGroupjava/Thread 2021. 5. 27. 20:38
10페이지 분량의 글을 나름 열심히 정리했지만 헷갈리는 것이 있고 독자로 하여금 포스팅 이해가 지맘대로 일 것 같아서 싹다 새로 정리하여 글을 남긴다. 아오!!!!쭈바 스레드 그룹은 서로 관련된 스레드를 그룹으로 다루기 위한 것이다. 스레드 그룹에는 스레드 뿐만 아니라 스레드 그룹도 포함시킬 수 있다. 보안상의 이유로 도입된 개념으로, 자신이 속한 스레드 그룹이나 하위 스레드 그룹은 변경할 수 있지만 다른 스레드 그룹의 스레드를 변경할 수는 없다. public class ThreadGroup implements Thread.UncaughtExceptionHandler { private final ThreadGroup parent; String name; //스레드 그룹의 이름 int maxPriority..