본문 바로가기

Python18

멀티 스레드(Multi-Thread ) 응용하기 with Python 블로그를 참고해서 멀티 스레드(Multi-Thread)를 응용하고자 한다. 멀티 스레드 응용하기 1. 싱글 스레드를 이용한이미지 다운로드 사용할 이미지는 Corey Schafer의 Python Threading Tutorial에서 가져온 15장 이미지를 사용한다. 주어진 이미지는 고해상도 이미지를 사용하며, 다운로드에 약간 시간이 소요된다. import time import os import requests img_urls = [ 'https://images.unsplash.com/photo-1516117172878-fd2c41f4a759', 'https://images.unsplash.com/photo-1532009324734-20a7a5813719', 'https://images.unsplash.co.. 2022. 5. 19.
멀티 스레드(Multi-Thread ) 시작하기 with Python 파이썬으로 멀티 스레드(Multi-Thread)를 구현하는 방법에 대해서 살펴보고자 한다. 1. 싱글 스레드 import time def do_something(): print('Sleeping 1 seconds') time.sleep(1) print('Done Sleeping...') if __name__ == '__main__': start = time.perf_counter() for _ in range(10): do_something() finish = time.perf_counter() print(f'Finished in {round(finish-start, 2)} second(s)') 위 코드는 do_something 함수를 10번 실행하는 코드이고 time.perf_counter() 함수를 .. 2022. 5. 19.
멀티 프로세스 vs 멀티 스레드 1. 프로세스 1) 프로세스란? 메모리에 적재되어 CPU 자원을 할당 받아 실행되는 프로그램. 2) 할당받는 시스템 자원 CPU 시간 주소 공간 Code, Data, Stack, Heap 구조로 된 독립된 메모리 영역 3) 프로세스 특징 프로세스는 각각 독립된 메모리영역(code, data, heap, stack)을 할당받으며, 다른 프로세스의 변수나 자료구조에 접근 불가하다. 다른 프로세스의 자원에 접근하려면 파이프, 파일, 소켓 등을 이용해 통신해야한다. 프로세스는 최소 1개의 메인 스레드를 갖고 있다. 2. 스레드 1) 스레드란? 프로세스의 작업단위. 2) 스레드 특징 프로세스 내에서 stack만 따로 할당받고, code, data, heap 영역은 공유한다. 한 스레드가 프로세스 자원을 변경하면,.. 2022. 5. 18.
[Python] 타입 어노테이션/힌트 파이썬 동적 프로그래밍 언어 동적(dynamic) 프로그래밍 언어인 파이썬에서는 인터프리터(interpreter)가 코드를 실행하면서 타입(type)을 추론하여 체크한다. 또한 파이썬에서 변수의 타입(type)은 고정되어 있지 않기 때문에 개발자가 원하면 자유롭게 바꿀 수 있다. >>> no = 1 >>> type(no) >>> no = "1" >>> type(no) 위 코드를 보면 no 변수의 타입이 처음에는 int였다가 str으로 바뀐 것을 알 수 있다. 자바와 같은 정적(static) 프로그래밍 언어에서는 상상도 하기 힘든 일이며 이런 코드는 컴파일(compile)조차 되지 않는다. /* java */ int no = 1; no = "1"; // compile error!! 이렇게 유연한 파이썬의 .. 2022. 4. 11.