높은 동시 프로그래밍의 기본

    동시 프로그래밍의 기초는, 멀티 스레드의 기초를 설명 멀티 스레드, 요청이 간단하게 분리 될 수 있어야합니다.

첫째, 멀티 스레드 구현

    우리가 알다시피, 즉, 스레드를 작성하는 네 가지 방법이 있습니다 :

   1. 스레드 클래스 상속은 실행 메소드를 오버라이드 (override)

   의 Runnable 인터페이스를 구현 2. 실행 메소드를 오버라이드 (override)

   3. 익명 내부 클래스의 방법

   스레드 풀 (4)

   일반적으로, Thread 클래스와의 Runnable 인터페이스를 주위에 작동 할 수 있으며, 가장을 사용해야 작품 (프리젠 테이션 후) 스레드 풀이다.

스레드 및 프로세스의 개념과 관련된 두 스레드

        프로세스는 시스템의 활동에 대한 데이터 세트에서 실행되는 컴퓨터 프로그램이 자원 할당 및 스케줄링의 기본 단위입니다. 스레드는 프로그램 실행의 최소 단위이다. 밤나무의 경우 : 고속철도 스테이션은 공정 고속 철도역 책임자 (시스템) 전체 고속 철도역 리소스 할당 및 스케쥴링을 가질 것이다 각 스레드는 철도이다.

스레드의 셋째, 분류

        데몬 스레드 프로세스가 메인 쓰레드 존재하거나 중지하지 않는 경우, 스레드 데몬이 중지됩니다; 데몬 스레드를 사용자 정의 스레드가 생성되고, 정지의 주요 스레드가, 사용자 스레드를 멈추지 않을 것입니다 : 사용자 스레드와 데몬 스레드, 사용자 스레드로 분할된다.

        데몬 스레드 사용 그렇지 않으면 데몬 스레드 실패를 설정하지만, 사용자 스레드로합니다, 당신이 시작하기 전에 () 세트 필요도 데몬 스레드를 설정하는 setDaemon를 (사실) 메소드를 사용하는 것은 매우 간단합니다.

넷째, 라이프 사이클의 스레드

       새로운 상태, 준비 상태, 상태를 실행 상태와 죽음의 상태를 차단.

       준비, 실행, 등, 앞뒤로 전환 할 수 있습니다 세 가지 상태를 차단 : 그때 차단 전송 차단을 실행 상태를 실행할 준비 상태 수 있습니다 실행. 그것은 죽음에 오지 않는다, 그것은 살아있다.

다섯, 자바 메모리 모델

       JMM 언급 할 때, 공유 변수에 스레드 쓰기를 결정, 그것은 다른 스레드에서 볼 수 있습니다. 공유 자원은 메인 메모리에 저장되고, 각 스레드가 동작하는 스레드의 사본, 자원이 주 메모리로 플러시가 변경 될 때 공유 자원의 복사본을 저장하고 다른 스레드가 로컬 메모리를 새로 알려드립니다 따라서, 시인성을 확보 복사. 메인 메모리 (메인 메모리), 각 스레드는 전용 로컬 메모리 (로컬 메모리)가 가변 스레드간에 공유 스토리지 : 추상적 인 관점에서, JMM 스레드와 메인 메모리 사이의 관계를 정의 추상 읽기 / 쓰기 위해 스레드의 복사본을 저장 로컬 메모리 공유 변수. JMM 로컬 메모리는 추상적 인 개념이며, 실제 아니다. 그것은 캐시, 쓰기 버퍼, 레지스터 및 기타 하드웨어 및 컴파일러 최적화를 포함한다.

     세 가지 특성.

     1 자성

         때 아닌 인터럽트 동작. 실행 함께 여러 스레드는 단일 운영 시작, 그것은 다른 스레드에 의해 방해되지 않습니다 경우에도.

     2, 가시성

스레드가 공유하는 변수의 값을 수정하면, 다른 스레드는 즉시 수정 여부를 알 수 있습니다. 일반적으로 휘발성 키워드의 가시성을 보장하기 위해 글로벌 공유 변수의 사용, 적절한 자원은 메인 메모리로 브러시 및 재정렬 금지됩니다.

    3 질서

스레드를 들어, 코드 실행을 수행하기 위해 처음부터 미래에 따른다. 그러나, 프로그램의 동시 실행 순서가 나타날 수 있습니다. 프로그램이 실행되기 때문에 스크램블 원인 명령이 재 배열 할 수있다.

소위 재정렬 효율을 향상 재정렬 의존성 인스트럭션 간의 관계 없을 것이다. 마찬가지로 파이프 작업, 이러한 두 명령어 명령어 (A)와 지시 B, 취급 A = A + B, 명령어 B = C + D가 두 명령어 종속성이없는의 컴파일러 및 프로세서가 될 수있다 작업은 순서가 않습니다. 명령 A = A + B, 명령어 B = A + C가 다음 두 개의 명령어가있는 경우 종속성이 재 배열하지 않는다.

 

게시 18 개 원래 기사 · 원 찬양 2 ·은 10000 +를 볼

추천

출처blog.csdn.net/qq_32285039/article/details/103277523