• 공부한 날짜 : 2021.12.05

 

  • 연산 함수 구현 

 

  • main 함수 구현 

 

 

  • Manager(): 프로세스에서 변수를 공유해주는 함수. 해당 함수를 이용해서 list 또는 dict 변수를 공유할 수 있음 

 

  • 프로세스 생성t=Process(~,~,~) 및 실행(t.start())

 

  • process.join(): 모든 프로세스 작업 완료시까지 대기

 

  • 리스트, 리스트 합 출력 

 

  • 수행시간 계산 및 출력 

 

  • Main 함수 실행 

 

 

6주간(10.25-12.05) 진행된 파이썬 공부 끝!!(level 1부터 4까지)

아직 복습하고, 익혀야할 부분이 많지만 천천히 배워나가면 나중에 나의 파이썬 실력이 많이 올라갈 거라고 생각한다.

그동안 고생했다!!

  • 공부한 날짜: 2021.12.05

 

  • cpu_bound(number): 특정숫자까지의 제곱수의 합 계산하는 함수 

 

  • find_sums(numbers): 계산 결과들 리스트에 넣어서 반환하는 함수 

 

  • main 함수: 굉장히 큰 함수도 빠르게 계산할 수 있음 -> 따라해보면 좋을 것 같음 

 

  • main 함수 실행 

  • 공부한 날짜: 2021.12.05
  • threading보다 코드 복잡도 높아짐 
  • 이 부분은 잘 모르겠어서 일단 코드 올려놓고 나중에 공부할 예정 
  • main()에서 get_event_loop()가 없다면서 사용할 수 없다는데 해결책을 아직 못 찾음

 

 

 

 

  • 공부한 날짜: 2021.12.05

 

  • 동시 프로그래밍 패러다임의 변화 발생
  • 싱글 코어: 처리향상 미미하거나 저하 -> 비동기 프로그래밍이 대두됨  -> CPU 연산, DB 연동, API 호출 대기 시간 늘어남
  • 제어권을 넘겨서 다른 작업을 하다가 다시 작업을 이어서할 수 있게함 
  • 파이썬 3.4 -> 비동기(asyncio)가 표준라이브러리로 등장 

 

 

  • 주의해야할 점 -> 비동기 함수에서 비동기 함수로 실행할 때는 반드시 await 입력해야한다 -> 걍 외워야함 

 

  • I/O Bound AsyncIO 예제
  • 같은 내용의 함수를 async(), sync()로 구현 
  • 다른 점 찾아보기 

 

 

1. Async()

  • exe_calculate_async()
  • async로 진행할 함수는 무조건 async def 선언하기 
  • 비동기 함수에서 비동기 함수로 실행하므로 await 입력하기 
  • exe_calculate_async -> process_async
  • asyncio.sleep(i): i 초 동안 태스크 중단 후 다른 태스크 실행 

 

  • process_async()
  • asyncio. wait(): 코루틴 함수에 시간 제한을 두고싶을 때 사용하면 된다-> 이부분은 아직 이해가 잘 가지 않는다 나중에 다시 한번 더 봐야할듯 (해당 내용 사이트: https://www.daleseo.com/python-asyncio/)

 

2. Sync()

 

  • exe_calculate_sync()
  • await asyncio.sleep이 아닌 time.sleep임 

 

  • process_sync()
  • await asyncio.wait()가 아닌 그냥 함수에 파라미터 넣음 

 

  • main 실행 

1. Sync 실행: 하나의 프로세스 진행 중에 다른 프로세스 진행 불가 

2. Async 실행 and 파이썬 3.7 이상 : 다른 프로세스 진행 가능 

3. Async 실행 and 파이썬 3.6 이하 

+ Recent posts