본문 바로가기

웹 개발/Java

(3)
[Java] Thread starvation or clock leap detected HikariPool-1 - Thread starvation or clock leap detected (housekeeper delta=4m7s836ms) mac이 잠자기 또는 화면 잠금에 들어갈 경우 clock leap이 일어나 발생하는 것으로 추정됨.
[Java] Deadlock 데드락 데드락에 대해 관심을 가지게 된 계기는 MQTT 클라이언트를 구현하면서였다. MQTT 클라이언트를 org.eclipse.paho.client.mqttv3.MqttClient로 구현하고 MqttClient의 setCallback 메소드에 MqttCallback 인터페이스를 익명 클래스로 구현하여 파라미터로 넣었다. 데드락이 발생한 원인은 바로 이 MqttCallback 인터페이스의 messageArrived 메소드에 있었다. messageArrived 메소드의 설명은 다음과 같다. void messageArrived(java.lang.String topic, MqttMessage message) throws java.lang.Exception This method is called when a messag..
[Java] JVM 메모리 영역, 기본 변수, 참조 변수, equals와 == 연산자 비교, hashcode Java의 hashcode에 대한 궁금증이 생겼을 때, 이는 equals와 == 연산자의 비교로 이어지고, 또 이는 기본 변수와 참조 변수, 나아가 Java 메모리 영역으로 이어진다. 자바 메모리 관리 - 스택 & 힙(+ 스코프, 불변 객체, 가비지 컬렉터) 스택 Heap 영역에 생성된 Object 타입의 데이터의 참조값이 할당된다. 원시타입의 데이터가 값과 함께 할당된다. 지역변수들은 scope 에 따른 visibility 를 가진다. 각 Thread 는 자신만의 stack 을 가진다. 힙 Heap 영역에는 주로 긴 생명주기를 가지는 데이터들이 저장된다. (대부분의 오브젝트는 크기가 크고, 서로 다른 코드블럭에서 공유되는 경우가 많다) 애플리케이션의 모든 메모리 중 stack 에 있는 데이터를 제외한 ..