스레드, 프로세스, 기본적인 이해를 코 루틴

공정 : 자원 할당 및 스케줄링 시스템뿐만 아니라 용기 스레드의 기본 단위는 상기 프로그램 데이터 세그먼트 PCB 조성물에 의해 실행되는 컴퓨터 프로그램의 예이다.

주제 : 주제, 또한 경량 프로세스라고도 프로그램 실행 자체의 최소 단위는 필요한 리소스의 구현의 작은 부분만을 갖는다.

코 루틴 : 또한 마이크로 스레딩으로 알려진 · 코 루틴은 더 이상 자신의 코 루틴 스위치의 타이밍을 제어 할 수있는 사용자는 커널 모드 시스템에 해당해야합니다. 스레드와 프로세스 스위칭 시간을 많이 소모, 커널 모드와 사용자 모드를 전환하는 문제에 직면하고 있습니다.

 

차이 :

1) 공유 메모리 공간 독립 메모리 프로세스 스레드

스레드 간의 2) 사이의 직접 통신, 간 통신은 중간 프록시를 통과해야

3) 동일한 프로세스의 스레드간에 서로를 제어 할 수 있지만, 프로세스는 자식 프로세스를 제어 할 수있다

4) 스레드의 생성은 매우 간단하지만, 새로운 프로세스를 만들려면 부모 프로세스의 복제해야합니다

5) 주요 첸은 다른 스레드에 영향을 미칠 것이다 변경,하지만 변화는 부모 프로세스가 자식 프로세스에 영향을 미치지 않습니다

 

GIL : 글로벌 통역 잠금, 같은 시점의 시스템에서, 하나의 스레드 만이 해석 통역, 멀티 코어 자원을 최대한 활용할 수없고, 병렬로 수행 할 수 없습니다.

파이썬은 싱글 코어 CPU 상황에서 멀티 스레드 멀티 프로세스 프로그래밍 소위 유사합니다.

어떻게 문제 GIL 잠금 장치를 해결하는 방법 :

1)에는 JPython하기 위해 CPython의 교체

멀티 프로세스 멀티 스레드 작업 실행의 2) 사용

3) C를 통해 다중 스레드 달성

뮤텍스 : 멀티 스레드는 질서 수정 된 데이터가 수정 보장하기 위해 데이터 수정 혼란을 생성하지 않습니다.

 

추천

출처www.cnblogs.com/zhanghaibin16/p/11781337.html