멀티 스레드 환경, 동시성 이슈, 해결방법 | 스레드 안전성 (Thread-safe)
·
Java
동시성 이슈멀티스레드 방식은 한 코어에서 여러 스레드를 이용해서 번갈아 작업을 처리하는 방식공유하는 영역이 많아 프로세스방식보다 context switcing 오버헤드가 작아, 메모리 리소스가 상대적으로 적다는 장점멀티스레드 프로세스의 경우 여러 스레드가 같은 프로세스 내의 자원을 공유해서 작업하기 때문에 서로의 작업에 영향을 줌여러 스레드가 동시에 하나의 자원을 공유하고 있기 때문에 같은 자원을 두고 경쟁상태(raceCondition) 같은 문제가 발생2023.05.11 - [CS/OS] - [Process & Thread] 스레드, 멀티 스레드 [Process & Thread] 스레드, 멀티 스레드1. 스레드 1) 스레드 하나의 프로세스 내에서 실행되는 동작의 단위 각 스레드는 프로세스의 스택 메모리..
객체 지향 프로그래밍 OOP 특징 | 캡슐화, 추상화, 상속, 다형성
·
Java
OOP(Object Oriented Programming) 문제를 여러 개의 객체 단위로 나눠 작업하는 방식으로 객체들이 서로 상호작용하는 프로그래밍 이론 객체들의 모임으로 파악하는 것 여러 독립적인 부품들의 조합, 즉 객체들의 유기적인 협력과 결합으로 파악하고자 하는 컴퓨터 프로그래밍의 패러다임을 의미 클래스를 이용하여 관련있는 처리(기능) 부분과 데이터 부분을 하나의 객체(인스턴스)로 묶어 생성하여 사용 캡슐화 (Encapsulation) 데이터와 코드의 형태를 함께 묶어 외부에서 알 수 없도록 하고, 데이터의 구조와 역할/기능을 하나의 캡슐형태로 구현하는 방법 캡슐화의 중요한 목적은 변수를 private 으로 선언하여 데이터를 보호하는 것 보호된 변수는 getter()/setter() 메소드를 통해..
Java sort() Arrays와 Collections
·
Java
Java의 정렬 내장 함수 Arrays.sort() 와 Collections.sort()는 서로 다른 정렬 알고리즘으로 구현 int[] array = new int[]{1, 3 , 5, 4, 2}; Arrays.sort(array); List collection = new ArrayList(List.of(1, 3, 5, 4, 2)); Collections.sort(collection); Arrays.sort() Arrays.sort() 확인했을 때, 듀얼피봇 퀵정렬(Dual-Pivot QuickSort) 확인 듀얼피봇 퀵정렬(Dual-Pivot QuickSort) 피봇을 2개를 두고 3개의 구건을 만들어 퀵 정렬 진행하는 알고리즘 퀵소트보다 좋은 성능 Collections.sort() nlg(n) 비교보..