동시 자바 초기 학습 기사에 프로그래밍 지식을

동시 자바 초기 학습 기사에 프로그래밍 지식을

의 몇 가지 실제 제조 업체 얼굴 질문을 살펴 보자 :

0fCvo5IJYWG

0fCvo69wfPE

0fCvo6r0Ou0

위의 몇 가지 실제 면접 질문에서, 우리는 인터뷰 메이커 동시성에 관한 질문을 할 것입니다 볼 수 있습니다. 그래서

자바 동시성, 모든 만남에 의해 복잡 인터뷰 나 직장이 있는지 여부. 자바와 계약 JUC (java.util.concurrent의) 무엇에 대해 알고 있나요? 그리고 무엇을 가장 중요한 것은 계약을 달성하는 것입니다? 원리는 당신이 무엇을 알고 무엇입니까? JMM의 가시성은 무엇인가? volatiile 주요 변수는 가시성을 달성하는 방법은? 철저하게 단어를 이해 이해 동시성을 배우고 싶은 경우에, 카이거 적은 컴퓨터 지식을 느끼거나 이해하는 법을 배워야. 은 "자바 동시 프로그래밍 - 예비 지식"은 다음을 포함하여이 개 보고서를 사용하기 카이거 준비 : Java 언어 사양의 휘발성 키워드가 무엇인지 사이의 간단한 메모리 가시성이 어떻게 정의 ?? 하지만 당신은 JVM이 JMM 그것이 아니라는 것을 알고 뭔지 알아? 컴퓨터 CPU가 데이터를 처리하는 방법은? 데이터 스레드 간의 가시성 깊은 이해에 CPU에 의해 처리된다. 그것의 시인성을 확보하는 방법 휘발성이있다? 달성 두 가지 원칙은 무엇인가?

휘발성 : 또는 당신은 자바 동시성의 실현에 자바 클래스와 계약 (JUC가) 매우 중요한 키워드를 가지고 말할 수 있습니다. 키워드 달성하기 위해 변수를 수정 "가시성을." 그래서 원칙의 실현은 무엇인가?

어떤 섹스 볼 수 있습니다?

가시성 :

다른 인기 이름 : 변수의 가시성, 스레드 간의 가시성, 메모리 가시성.

그것은 스레드가 공유 변수가 보인다 수정할 때, 다른 thread가이 수정의 값을 읽을 수있다.

휘발성 정의 키워드

휘발성의 Oracle Java8 언어 사양의 정의에서 살펴 보자. 다음과 같은 접근은 다음과 같습니다

0fCvo7WQF4y

0fCvo7r1gmG

휘발성 중국 8.3.1.4 필드 설명 제 8 장 8.3에서 :

0fCvo8Gl0Uq

자바 프로그래밍 언어는 액세스 공유 변수에 스레드를 할 수 있습니다. 원칙적으로 업데이트됩니다 일관성과 신뢰성을 공유 변수를 보장하기 위해, 스레드, 그것은 작동하는 방법은 잠금을 획득함으로써 달성된다이 변수의 독점적 사용을 보장하고, 강제로 이러한 변수의 상호 배타적 인 사용을 스레드한다.

Java 언어는 두 번째 메커니즘, 즉 휘발성 키워드를 제공합니다. 휘발성 변수가 수정되면 모든 스레드가 모든 변수를 볼 수 있도록, 자바 메모리 모델은 일관성있는 값을 보장합니다.

다음과 같이 번역의 중국어 버전은 다음과 같습니다

0fCvo8hGXT6

편집

PS : 다음과 같이 Java 언어 사양 휘발성의 제 3 판에 정의 : XXXX를 이렇게 설명 된 책을 읽을 때.

이를 찾으려면, 명나라 카이거는 말했지만, 검색의 다양한 결과는 찾지 못했습니다. 그런 다음 공식 시간의 문서, 그리고 마지막으로 톱 봐. 카이거 (kaigejava) "Java 언어 사양은 자바 SE 8 중국어를 기반으로하는"도 준비가되어 있습니다. 도는 다음과 같습니다 :

0fCvo9APxs8

자바 사양 기술 언어에서, 우리는 두 가지 방법으로 일관성을 보장하기 위해 다음 업데이트에서 자바에 대한 액세스 공유 변수를 알고 :

한 가지 방법 : 별도의 잠금 장치에 의해 취득 변수는 배타적 일을 운영하는

두 번째 방법 : 변수를 수정하는 휘발성 키워드를 사용.

여기에서 우리는 휘발성 변수의 가시성의 기본 원칙을 구현하려고합니다.

기본 원칙 휘발성에 대해 이야기하기 전에, 우리는 지식의 다른 점을 이해하는 것이 먼저가 : JMM를

JNN

우리는 모두가 JVM 자바 가상 머신 알고있다. 그러나 JMM 당신은 알아요?

JMM (자바 메모리 모델) : 자바 메모리 모델.

Java 언어 사양 JMM의 정의에서 살펴 보자 :

0fCvo9Wilto

이 평균을 무엇을 그림? 이해하지 않습니다. 간단하게 말해서 : JMM은 추상적 인 개념이다. 각 변수의 액세스 모드 스레드의 규칙에 의해 정의 된 규칙 또는 기준의 세트를 설명한다.

스레드 간의 동기화를위한 JMM는 규정을 따르고 있습니다 :

1 : 잠금, 그는 첫번째가 잠금을 해제하기 전에 메인 메모리에 다시 기록 변수의 공유 가치를 삽입해야 스레드 출시 후

2 : 나사 고정 할 때 반드시 자신의 작업 메모리의 최신 읽은 후, 제 1 주 메모리 변수 값, 운영 잠금 수행 할 수 있습니다;

3 : 잠금 및 잠금 해제 작업은 동일한 잠금해야합니다.

JMM 기능 :

1 : 가시성

2 : 원 자성

3 : 주문

JMM을 설명하기 전에, 우리는 CPU에서 관련 지식의 이해 간단한 온다.

함께 연구에 오신 것을 환영합니다 : 카이거 자바 (kaigejava)




추천

출처blog.51cto.com/kaigejava/2479918