개발 Java에서 원자 란 무엇입니까? -techopedia에서 정의

Java에서 원자 란 무엇입니까? -techopedia에서 정의

차례:

Anonim

정의-원자는 무엇을 의미합니까?

원자는 변수 java.util.concurrent.atomic 패키지 클래스의 툴킷으로 Java 언어로 잠금 및 대기없는 알고리즘을 작성하는 데 도움이됩니다. 지속적인 진행을 위해 부분 스레드 만 필요한 알고리즘은 잠금이 없습니다. 대기없는 알고리즘에서 모든 스레드는 스레드 장애 또는 지연이 발생한 경우에도 지속적으로 진행됩니다. 잠금 및 대기없는 알고리즘은 비 차단 알고리즘이라고도합니다. 비 차단 알고리즘은 운영 체제 및 Java 가상 머신 레벨에서 프로세스 및 스레드 스케줄링에 사용됩니다.

Techopedia는 원자를 설명합니다

모든 java.util.concurrent.atomic 패키지 클래스에는 이름에 "atomic"접두사가 있습니다. java.util.concurrent.atomic 패키지에는 다음과 같은 다양한 유형의 원자 변수가 있습니다.

  • 원자 부울
  • 원자 정수
  • AtomicIntegerArray
  • AtomicIntegerFieldUpdater
  • 원자 긴
  • 원자 긴 배열
  • AtomicLongFieldUpdater
  • 원자 참조
Java 언어에서 동기화는 공유 스레드 필드에 대한 액세스를 조정하고 잠금을 보유한 스레드 만 잠금으로 보호되는 변수에 액세스하고 수정하도록 허용합니다. 이 스레드의 수정 사항은 다음 스레드에 표시되지만 스레드가 잠금을 해제 한 후에 만 ​​가능합니다.

스레드 A가 잠금을 보유하는 시나리오가 그 예입니다. A는이 잠금으로 보호되는 변수에만 액세스하고 변경할 수 있습니다. 스레드 B가 A 다음에이 잠금을 보유하면 B만이 해당 특정 잠금으로 보호되는 변수에 대한 A의 변경 사항을 볼 수 있습니다. 잠금의 주요 문제점은 B가 A가 보유한 잠금을 획득하려고 시도 할 때 발생합니다.이 경우 잠금이 사용 가능할 때까지 대기하도록 B가 차단됩니다. 비 차단 알고리즘이이 문제를 해결합니다.


원자 클래스 작성의 주요 목적은 비 블로킹 데이터 구조 및 관련 인프라 클래스를 구현하는 것입니다. 원자 클래스는 java.lang.Integer 및 관련 클래스를 대체하지 않습니다. 대부분의 java.util.concurrent 패키지 클래스는 동기화 대신 원자 변수를 직접 또는 간접적으로 사용합니다. 원자 변수는 더 높은 처리량을 달성하는 데 사용되므로 응용 프로그램 서버 성능이 향상됩니다.

이 정의는 Java와 관련하여 작성되었습니다
Java에서 원자 란 무엇입니까? -techopedia에서 정의