java6 Java 에서의 동시성 관리 방법 Synchronized키워드를 메서드나 블록에 적용해 해당 코드 블록에 접근할 때 하나의 스레드만 접근할 수 있도록 보장락을 잡고 있는 동안 다른 스레드들은 해당 자원을 사용하지 못하기 때문에 경합이 발생하여 성능 저하가 일어날 수 있음락을 과도하게 사용하면 데드락 문제도 발생할 수 있음ReentrantLockLock 인터페이스를 구현한 클래스. 락을 명시적으로 관리할 수 있게 함락을 획득할 때 타임아웃 설정이나 중단할 수 있는 기능을 제공함synchronized보다 여러 조건을 처리하는데에 유리락을 획득하는데 실패할 경우 재시도를 하거나 특정 시간내에 락을 획득하지 못하면 다른 처리를 할 수 있음Lock lock = new ReentrantLock();lock.lock();try { // 작업 수.. 2025. 1. 27. Java & Kotlin 장단점 Java장점안정성과 성숙한 생태계20년 이상의 역사를 가진 언어로 안정적이고 잘 테스트된 라이브러리와 프레임워크를 제공백엔드 개발에 최적화된 도구와 IDE가 풍부플랫폼 독립성JVM 기반으로 Write Once, Run Anyshere 철학 구현다양한 플랫폼에서 동일한 코드를 실행 가능커뮤니티와 지원방대한 커뮤니티와 풍부한 학습 자료 덕분에 문제 해결이 쉬움지속적인 업데이트로 최신 기술 지원확장성과 성능대규모 시스템 개발에 적합하며 성능이 우수대량 트랜잭션 처리나 엔터프라이즈 애플리케이션에 최적화안정적이고 명시적인 코드강타입 언어로 명확한 코딩 스타일을 유지하며 코드 가독성이 높음단점장황한 문법코드가 지나치게 장황할 수 있어 생산성이 떨어질 수 있음반복적인 boiler plate 코드가 많음모던 기능 부족.. 2025. 1. 25. PriorityQueue (우선순위 큐) 1. PriorityQueue? 일반적인 큐의 구조 FIFO(First In First Out)를 가지지만 데이터가 들어온 순서가 아닌 우선순위에 따라 순위가 높은 데이터가 먼저 나가는 자료구조이다. 우선순위 큐에 저장할 객체는 필수적으로 Comparable Interface를 구현해야 하며, compareTo()를 통해 해당 객체에서 처리할 우선순위 조건을 리턴해주면 PriorityQueue가 순위가 높은 객체를 추출해준다. PriorityQueue는 Heap을 이용하여 구현하는 것이 일반적이다. (최대 값이 우선순위인 큐는 최대 힙, 최소 값이 우선순위인 큐는 최소 힙) 2. method priorityQueue.add(1)// 값 1 추가. 문제 발생시 exception 반환 priorityQueu.. 2023. 7. 7. 이전 1 2 다음 728x90 반응형