JMM은 Java에 대한 깊은 이해를 원하는 프로그래머에게는 필연적인 수준입니다. 이 글은 좀 더 이론적이고 이해하기 쉽도록 작성되었습니다. 혹시라도 실수가 있으면 정정해 주시기 바랍니다. 그러면 먼저 jvm의 메인 메모리 할당에 대해 이야기해보자. 1 자바 가상 머신 스택(java virtual stack) 가상 머신 스택은 스레드에 전용이다. 이는 자바 메소드 실행을 위한 메모리 모델이다. 각각 메소드가 실행되면 가상 머신 스택에 스택 프레임이 생성됩니다. 스택 프레임은 주로 메소드 내 지역 변수(기본 유형, 객체 참조, returnAddress 유형(주소를 가리킴))를 저장하는 데이터 구조입니다. 바이트코드 명령어) )), 작업 스택(메소드 컴파일 후 작업 명령어 스택 참조), 동적 연결, 메서드 내보내기. 일반적으로 자바 메모리는 스택(Stack)과 힙(Heap)으로 구분되는데, 스택은 가상머신 스택을 말한다. 그러나 Java의 메모리 할당은 그렇게 간단하지 않습니다. 동적 연결은 다음과 같이 설명됩니다. 각 스택 프레임에는 실행 중에 해당 스택 프레임이 속한 메서드에 대한 참조가 포함되어 있습니다. 이 참조는 메서드
1을 지원하기 위해 유지됩니다. JMM Java 메모리 모델 상세 그래픽 설명
서문: JMM은 Java를 깊이있게 이해하고 싶은 프로그래머에게는 피할 수 없는 수준입니다. 이 글은 좀 더 이론적이고 이해하기 쉬운 내용입니다. 만약 실수가 있다면 정정해 주시기 바랍니다. 나. .
2. 【죽은 Java 동시성】------Java 메모리 모델 재정렬
소개: 프로그램 실행 시 성능을 제공하기 위해 프로세서와 컴파일러 지침 순서가 바뀌는 경우가 많지만 마음대로 순서를 바꿀 수는 없습니다. 다음 두 가지 조건을 충족해야 합니다. 1. 단일 스레드 환경에서는 프로그램 결과를 변경할 수 없습니다. 데이터 종속성이 있습니다. LZ의 이전 블로그를 읽어보셨다면 관계의 순서를 바꾸는 것이 허용되지 않는다는 것을 아실 것입니다. 실제로 이 두 가지 사항은 한 가지 사항에 귀속될 수 있습니다. JMM은 임의 정렬을 허용합니다. as-if-serial 의미 as-if-se
3. 【죽은 Java 동시성】------Java 메모리 모델 발생 이전
소개: On 이 블로그에 post ([Fuck Java Concurrency] - 휘발성 구현 원리 심층 분석) LZ는 스레드 로컬 메모리와 메인 메모리의 존재로 인해 재정렬과 결합되어 멀티 스레드 환경에서 가시성 문제가 발생할 것이라고 언급했습니다. . 따라서 동기화와 잠금을 올바르게 사용하면 스레드 A가 변수 a를 수정하면 언제 스레드 B에 표시됩니까? 스레드에 의해 수정된 변수가 다른 스레드에 표시되는 경우 모든 시나리오를 규정할 수는 없지만 JDK 5부터 JMM은 ha
4를 사용합니다. Java 메모리 모델 분석: summary
소개: 순차 일관성 메모리 모델은 일반적으로 JMM 및 프로세서 메모리 모델을 설계할 때 참조로 사용됩니다. JMM 및 프로세서 메모리 모델은 설계 시 순차 일관성 모델을 어느 정도 완화합니다. 왜냐하면 프로세서와 JMM이 순차 일관성 모델에 따라 완전히 구현되면 많은 프로세서 및 컴파일러 최적화가 금지되어 실행 성능에 해를 끼치기 때문입니다. 큰 영향을 미칠 것입니다.
5. 제2회 PHP 글로벌 개발자 컨퍼런스(컨퍼런스의 PPT 포함) 개발자 헤드라인 게임 개발자 Wandoujia Development
소개: 개발자, php: 제2회 PHP 글로벌 개발자 컨퍼런스(컨퍼런스의 PPT 포함): PHP 글로벌 개발자 컨퍼런스가 2016년 5월 14일부터 15일까지 베이징에서 열렸습니다. 더 많은 현장 사진을 보려면 다음을 클릭하세요: http ://t.cn/RqeP7y9, http://t.cn/RqD8Typ 마지막으로 이번 컨퍼런스의 PPT는 여기에서 다운로드하실 수 있습니다: http://pan.baidu.com/s/1pLajmm3 이 글을 읽으셨다면 배운 내용이 있으니, 기사에 오류가 있으면 지적해주세요. 서로에게서 배우고 함께 발전해 보세요!
6. 2016년 5월 14일과 15일에 DevLink.cn이 베이징에서 개최한 제2회 PHP 글로벌 개발자 컨퍼런스를 어떻게 평가하시나요?
소개: PPT 다운로드 주소: http://pan.baidu.com/s/1pLajmm3
소개: Oracle은 오류 메시지 ORA-28001을 표시합니다. : 비밀번호가 만료되었습니다. 해결 방법: 1. SYSDBA 권한으로 로그인합니다. 2. 계정 정보 보기: dba_users에서 username,account_status를 선택합니다. 3. 계정이 잠겨 있거나 만료된 경우 먼저 잠금을 해제해야 합니다. 사용자 BJMMIS 계정 잠금 해제를 변경합니다. 그런 다음 비밀번호를 변경하십시오. Java는 데이터를 주 메모리에 어떻게 동기화합니까?
java - 프로그래밍 시 JVM에 익숙해지면 어떤 이점이 있나요? JMM을 더 잘 이해하는 방법은 무엇입니까? 이해하려면 어떤 지식 포인트를 결합해야 하며, 이해를 심화하려면 어떤 실천 측면을 수행해야 합니까?
java - 언제 멀티스레드 프로그래밍을 사용해야 합니까?위 내용은 JMM 추천 기사 8개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!