객체 및 변수에 대한 동시 액세스 : 멀티 스레드 프로그래밍

객체 및 변수에 동시에 액세스 : 프로그래밍 멀티 스레드 :

  1. 휘발성 키워드
  2. 동기화 동기화 방법
  3. 동기화 동기화 문 블록

휘발성 키워드 :
휘발성 키워드의 주요 역할은 여러 스레드 사이의 변수를 볼 수 있도록하는 것입니다.
경우는 실행에 달성 된 결과를 달성하기 위해 다중 상속, 사용 상속 스레드 클래스와의 Runnable 인터페이스는 아니며 많은 차이가없는 경우. 이 문제는 다중 상속의 경우 일단 발생하면, 방법의 Runnable 인터페이스는 멀티 스레딩이 필요 달성했다.
정상적인 상황에서 변수의 값은 작업 메모리에서 읽어, 다른 스레드가 다른 작업 메모리에서 읽을 것이다, 당신은 데이터를 읽을 대중에 액세스하려면 스택, 그것은 키워드 Volatie의 힘을 사용하여 일반적인 메모리 변수에서 읽을 수 있어야합니다 값은 여러 스레드간에 인스턴스 변수의 가시성을 증가시킨다.
이러한 동작은 원자 동작 아니라, 안전 쓰레드되지 않지만, 가장 치명적인 단점을 volatie 원자 키워드는 예를 들면, 난 + 1 = 지원된다.
AtomicInteger는 스레드 안전 잠금 케이스의 부재에서 수행 할 수 있습니다. 원자 클래스는 완전히 안전하지 않습니다, 우리는 방법 사이의 통화를 해결하기 위해 필요한 경우 동기화 사용해야합니다.

동기화 된
비즈니스 객체 인스턴스 변수의 두 가지 동시 작동을 곱한 경우, 동기화되지 않은 두 개의 스레드 접근 방법, 그것은 "비 스레드 안전"문제 수, 당신은 동기화 추가 할 수 있습니다.
메서드를 호출 키워드 동기화 문은 자원을 공유하지 않을 경우, 동기화가 필요하지 않습니다, 동기화를 필요로 읽기 전용 및 공유 리소스에 대한 쓰기 권한이 있음을 염두에 두어야 할 단어를 공유 할뿐만 아니라, 실행에 대기해야합니다.

저효율의 단점 동기화 방법, 동기화되도록 동기 블록 반 동기, 비동기 절반의 용도.

동기화 (비이 오브젝트 X) 동기 블록 포맷을 동기화하지 않을 때 동일한 객체의 모니터는, 연산 결과 비동기 호출되면, 객체 모니터는 동일한 객체 여야
(클래스) 블록 동기화 동기화 방법 동기화 정적 :
키워드는 또한 비 - 표적 접근법에 잠금을 보유 할 대응하는 클래스 * 된 .java 파일의 현재 계급 즉, 기록, 및 첨가하는 경우, 정적 정적 법에서 사용할 수있는 것은 고정 타겟팅이다.

멀티 스레딩 교착 상태 (교착 상태) :
교착 상태는, 양측이 서로의 잠금을 보유하지 않도록 설계 과정에서 사용되는 프로그램 설계 버그입니다.

게시 14 개 원래 기사 · 원의 칭찬 0 · 조회수 (204)

추천

출처blog.csdn.net/weixin_43237071/article/details/104033505