파이썬 중급 10일차

김영목·2021년 8월 30일
0

파이썬중급

목록 보기
16/18

# yield : 메인 <-> 서브
메인영역과 서브 영역이 서로 상호작용한다. 
# 코루틴 제어, 상태, 양방향 전송
# yield from

# 서브루틴 : 메인루틴에서 호출 -> 서브루틴에서 수행(흐름제어)
# 코루틴 : 루틴 실행 중 중지 ->  동시성 프로그래밍
# 코루틴 : 쓰레드에 비해 오버헤드 감소
# 쓰레드 : 싱글쓰레드 -> 멀티쓰레드 -> 복잡 -> 공유되는 자원 -> 교착 상태 발생 가능성, 컨텍스트 스위칭 비용 발생, 자원 소비 가능성 증가

#1.예제를 통해 코루틴 이해하기.

def my_co1(word) :
	print(f'Feel the amazingness of python {word}')
    	word1 = yield word
        print(f'you input {word1}')
        word2 = yield word1
        
my_execute = my_co('영목')

print(next(my_execute)

result :
Feel the amazingness of python 영목
영목
print(my_execute.send('현지'))

result :
you input 현지
현지

#2. 예제를 통해 코루틴 이해하기 2

def my_use_sibal() :
	for i in 'fuck my ass':
    		yield i
        for k in 'i love sex':
        	yield k

my_printing = my_use_sibal()

print(next(my_printing))
print(next(my_printing))
print(next(my_printing))
print(next(my_printing))
print(next(my_printing))
print(next(my_printing))
print(next(my_printing))
print(next(my_printing))
print(next(my_printing))

위의 함수를 from을 사용해서 똑같이 재현할 수 있다.

def my_from ():
	yield from 'kim'
    yield from range(1,5)
    
    
	
profile
안녕하세요 김영목입니다.

0개의 댓글