코 로 틴 부터.
1811 단어 Python
협 정 은 마이크로 스 레 드 라 고도 부 르 는데 1963 년 에 태 어 나 최근 몇 년 에 야 일부 언어 에서 광범 위 하 게 사용 되 기 시 작 했 기 때문에 대기만성 이 라 고 할 수 있다.
def A():
print '1'
print '2'
print '3'
def B():
print 'x'
print 'y'
print 'z'
위의 코드, 가능 한 실행 결과:
1
x
2
y
3
z
이 결 과 는 마치 두 개의 스 레 드 가 각각 실행 되 는 것 과 같 지만 단일 스 레 드 가 완성 되 었 다 면 상대 적 으로 여러 스 레 드 가 어떤 장점 이 있 습 니까?
1. 실행 효율, 호출 전환 은 프로그램 자체 에 의 해 제어 되 고 스 레 드 전환 비용 이 없습니다.
2. 단일 스 레 드 에서 완성 되 기 때문에 변수 에 대한 방문 은 다 중 스 레 드 중의 잠 금 체제 가 없고 집행 효율 도 향상 되 었 습 니 다. 예 를 들 어 2 개의 스 레 드 가 동시에 변 수 를 쓰 려 면 먼저 한 개 를 다 써 야 합 니 다. 잠 금 이 풀 려 난 후에 야 쓸 수 있 습 니 다. 협의 과정 이 라면 이런 비용 이 없습니다.
협 정 은 하나의 스 레 드 로 실행 되 기 때문에 다 핵 CPU 를 어떻게 이용 합 니까?가장 간단 한 방법 은 다 중 프로 세 스 + 협 정 으로 다 핵 을 충분히 이용 할 뿐만 아니 라 협 정의 효율 도 충분히 발휘 하여 높 은 성능 을 얻 을 수 있다.
그렇다면 python 에는 어떤 협 정 을 이용 한 것 이 있 을 까? 상상 할 수 없 는 yield 키 워드 는 바로 이 일 을 하 는 것 이다.yield 키워드 에 대해 이 글 은 아주 잘 썼 습 니 다. 저 는 관건 을 기록 하고 인상 을 깊 혔 습 니 다.
1. 상용 데이터 형식 dict, list 등 은 모두 Iterable 입 니 다. iter (iterable object) 를 사용 하면 iterable object 를 iterator object 즉 교체 기로 바 꿀 수 있 습 니 다.
2. generator 는 iterator 로 yield 를 포함 한 function 은 generator 대상 을 되 돌려 줍 니 다.
3. next (), send (). next () 는 generator 를 다음 yield 로 실행 하고 yield 표현 식 의 값 을 되 돌려 줍 니 다.send (value) 는 value 를 yield 표현 식 의 값 으로 하고 다음 yield 표현 식 으로 실행 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.