java
-
Thread(5) synchronized를 이용한 스레드 동기화java/Thread 2021. 6. 8. 22:04
스레드의 작업 내용이 짧으면 우리가 원하는 결과가 나타나지 않을 가능성이 생기게 된다. 일단 이 문제가 다른 결과를 보이는 것은 뒤에 가서 설명하고 먼저 스레드의 동기화 필요성에 대해서 설명한다. 스레드의 동기화 한 스레드가 진행중인 작업을 다른 스레드가 간섭하지 못하게 하는것 동기화의 필요성 스레드간에는 공유하는 자원이 있기 때문에 이 공유자원들에 대하여 여러 스레드에서 동시에 작업하면 문제가 발생할 수 있다. 그렇게 떄문에 스레드의 동기화가 필요하다. 두 스레드에서 하나의 Counter객체를 공유해서 사용해서 발생하는 문제를 봐보자. 하나의 Counter 클래스는 count값과 count값을 1증가시키는 increase메서드가 있다. Counter sharedCounter= new Counter();..
-
[Java] 메모리 stack,heapjava 2021. 5. 31. 18:42
스레드를 공부하면서 공유 객체에 대해 공부할 필요가 생겼다. 인터넷의 자료들을 바탕으로 매우 간단하게 정리하였다. 읽기전에 알아야할 내용들 멤버변수, static변수(클래스 변수), 지역변수 클래스 로딩이 언제 수행되는가. 클래스 로딩시 static변수 초기화 작업 및 static초기화 블럭 수행 참조 값을 저장하는 참조형 변수 , 실제 값을 저장하는 primitive변수 메소드 영역( 클래스 로딩시 static변수가 저장되는 곳) 힙 영역( 모든 객체가 저장되는 곳. 객체내부의 인스턴스 변수또한 힙에 저장됨, 동적 메모리, 주로 긴 시간 존재해야 할 데이터가 저장됨, GC의 대상, 메모리의 낮은 곳에서 높은 곳 방향으로 메모리 할당이 이루어짐) 스택 영역( 메서드 연산시 잠깐 잠깐 올라갈 변수를 올리는..
-
[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..