CodeGym University
학습
강좌
과제
설문조사 및 퀴즈
게임
도움말
학습 재촉 스케줄
커뮤니티
사용자
포럼
채팅
기사
성공 사례
활동
리뷰
구독
옅은 색 테마
레슨
리뷰
회사 소개
시작
학습 시작
지금 학습을 시작하십시오
탐구 맵
레슨
모든 탐구
모든 레벨
자바 메모리 모델
모듈 3
레벨 18,
레슨 2
Java 메모리 모델 소개 JMM(Java Memory Model)은 Java 런타임 환경에서 스레드의 동작을 설명합니다. 메모리 모델은 Java 언어의 의미 체계의 일부이며 특정 Java 시스템이 아닌 Java 전체를 위한 소프트웨어를 개발할 때 프로그래머가 기대할 수 있는 것과 기대해서는 안 되는 것을 설명합니다. 1995년에 개발된 원래 Java 메모리 모델(특히 "percolocal 메모리"를 나타냄)은 실패로 간주됩니
Java의 가비지 컬렉션
모듈 3
레벨 18,
레슨 3
Java에서 가비지 수집이 무엇인지 기억하십시오. 가비지 수집은 사용하지 않는 개체를 삭제하여 전체 런타임 메모리를 회수하는 프로세스입니다. 때때로 프로그래머는 쓸모없는 객체를 파괴하는 것을 잊고 할당된 메모리가 해제되지 않을 수 있습니다. 점점 더 많은 시스템 메모리가 소비되고 결국에는 더 이상 할당되지 않습니다. 이러한 응용 프로그램은 "메모리 누수"로 인해 어려움을 겪습니다. 특정 시점 이후에는 더 이상 새 객체를 생성할
세대별 가비지 컬렉션
모듈 3
레벨 18,
레슨 4
개체 세대 작업 Java 가비지 수집기는 수명별로 개체를 분류할 수 있는 세대별 가비지 수집 전략을 구현합니다. JVM에서 이러한 요구(모든 객체를 표시하고 압축해야 함)는 비효율적이라고 할 수 있습니다. 많은 수의 개체가 할당되면 해당 목록이 늘어나 가비지 수집 시간이 늘어납니다. 응용 프로그램에 대한 경험적 분석에 따르면 Java의 대부분의 개체는 수명이 짧습니다. JVM의 힙 메모리 영역은 세 부분으로 나뉩니다. 젊은 세
Java의 가비지 수집기 유형
모듈 3
레벨 18,
레슨 5
직렬 GC 가비지 수집은 힙에서 참조되지 않은 객체를 제거하고 새로 생성된 객체를 위한 공간을 만들어 Java의 메모리 효율성을 향상시킵니다. JVM(Java Virtual Machine)에는 8가지 유형의 가비지 콜렉터가 있습니다. 각각을 자세히 살펴 보겠습니다. 직렬 GC는 가장 간단한 GC 구현입니다. 단일 스레드 환경에서 실행되는 소규모 응용 프로그램을 위한 것입니다. 모든 가비지 수집 이벤트는 동일한 스레드에서 순차적
Java에서 가비지 수집기 선택
모듈 3
레벨 18,
레슨 6
7.1* 올바른 가비지 수집기를 선택하는 방법 애플리케이션에 엄격한 대기 시간 요구 사항이 없는 경우 애플리케이션을 실행하고 JVM 자체에서 올바른 수집기를 선택하도록 해야 합니다. 대부분의 경우 기본 설정이 제대로 작동합니다. 필요한 경우 힙 크기를 조정하여 성능을 향상시킬 수 있습니다. 여전히 성능이 기대에 미치지 못하는 경우 애플리케이션의 요구 사항에 맞게 수집기를 수정해 보십시오. 순차적 . 애플리케이션에 작은 데이터
Java의 정크 링크
모듈 3
레벨 18,
레슨 7
8.1 Java의 약한 참조 Java에는 여러 종류의 참조가 있습니다. StrongReference 가 있습니다 . 이것은 우리가 매일 만드는 가장 일반적인 링크입니다. Object object = new Object();//создал обьект
자바 동시성 라이브러리
모듈 3
레벨 19,
레슨 0
필드에 대한 읽기-쓰기는 필드가 선언되거나 읽기-쓰기 전에 획득한 고유한 잠금으로 보호되는 경우 원자적 작업입니다. 그러나 여전히 오류가 발생하면 재정렬(순서 변경, 재정렬)에 대한 오류가 발생합니다. 이는 한 스레드가 다른 스레드에서 생성된 효과를 관찰할 수 있는 잘못 동기화된 다중 스레드 프로그램에서 나타납니다.
Java의 원자적 연산
모듈 3
레벨 19,
레슨 1
원자적 연산의 등장을 위한 전제 조건 원자성 작업이 작동하는 방식을 이해하는 데 도움이 되는 이 예를 살펴보겠습니다. public class Counter {
동시 컬렉션
모듈 3
레벨 19,
레슨 2
CopyOnWriteArrayList 지정된 컬렉션에 대한 추가 , 설정 , 제거 작업은 생성되는 내부 배열의 새 복사본을 생성합니다. 이렇게 하면 ConcurrentModificationException 을 포착하지 않습니다 . 배열을 복사할 때 스레드로부터 안전하지 않은 요소의 필드에 대한 액세스를 포함하여 객체에 대한 참조만 복사된다는 점을 기억하십시오. 이러한 컬렉션은 쓰기 작업 수가 최소인 경우에 가장 잘 사용됩니다.
동시 대기열
모듈 3
레벨 19,
레슨 3
비차단 대기열 연결된 노드에서 스레드 안전하고 가장 중요한 비차단 Queue 구현. ConcurrentLinkedQueue - 가비지 수집기와 함께 작동하도록 조정된 대기 없는 알고리즘을 사용합니다. 이 알고리즘은 CAS를 기반으로 구축되었기 때문에 매우 효율적이고 매우 빠릅니다. size() 메서드는오랫동안 실행될 수 있으므로 항상 끌어오지 않는 것이 가장 좋습니다. ConcurrentLinkedDeque - De
동기화 장치: Java에서 리소스에 대한 액세스 동기화
모듈 3
레벨 19,
레슨 4
신호기 세마포어는 일반적으로 파일 시스템으로 작업할 때 스레드 수를 제한해야 할 때 사용됩니다. 파일 또는 기타 공유 리소스에 대한 액세스는 카운터를 통해 제어됩니다. 값이 0보다 크면 액세스가 허용되지만 동시에 카운터가 감소합니다. 카운터가 0을 반환하는 순간 현재 스레드는 다른 스레드가 리소스를 해제할 때까지 차단됩니다. 권한 매개변수의 수는 생성자를 통해 설정해야 합니다. 컴퓨터나 노트북의 전원에 따라 이 매개변수를 개별
실행자: 실행 가능한 개체
모듈 3
레벨 19,
레슨 5
6.1 실행 가능한 개체 그래서 우리는 패키지의 가장 큰 부분에 도달했습니다. Future 및 Callable 인터페이스를 통해 결과를 얻을 수 있는 기능과 함께 비동기 작업을 실행하기 위한 인터페이스와 ThreadPoolExecutor, ScheduledPoolExecutor, ForkJoinPool과 같은 스레드 풀을 생성하기 위한 서비스 및 팩토리에 대해 설명합니다. 더 나은 이해를 위해 인터페이스와 클래스를 약간 분해해
더 보기
1
...
32
33
34
35
Please enable JavaScript to continue using this application.