목록Python (3)
아는 만큼 보인다
Multi-processing과 multi-threading은 일종의 멀티태스킹을 달성하기 위한 두가지 다른 방법이라 할 수 있다. 한 번에 하나의 일만 해야 한다고 생각하면, 모든 작업들은 너무 느려질 수 밖에 없다. 이 둘은 어떻게 다른가? 보다 깊은 이해를 위해 작은 개념부터 시작해보려 한다. 1. Process vs Thread Process 운영 체제로부터 시스템 자원을 할당받는 작업의 단위, 실행되고 있는 컴퓨터 프로그램의 instance (an instance of a program that is being executed). 하나의 cpu는 한번에 한개의 process를 실행시킨다. 할당받는 시스템 자원의 예시로, 독립된 메모리 영역(code, data, stack, heap), 운영되기 ..
# TODO: 예시 추가, iterator 추가 1. 개념 - Iterator를 쉽게 만들 수 있게 해주는 개념/클래스이다. - Iterator란 무엇인가? iteration을 통해 값을 하나씩 반환하게 해주는 object (좀 더 공부해서 추가 예정!) - 기본적으로 iterator를 만들 수 있게 해주는 것으로, generator는 iterator이기도 하다. 그리고 iterator의 장점을 공유한다. - iterable한 순서가 지정되면 느슨하게 평가(lazy evaluation)되어, 필요에 따라 순서의 다음 값이 계산되는 방식으로 작동한다. - 이에 무한한 순서가 있는 객체를 메모리의 부담 없이 모델링할 수 있게 된다. - 즉, 필요한 값들을 모두 메모리에 들고 있는 게 아니라 필요할 때 꺼내쓸..
완전 기초 파이썬 expression은 operator와 operands를 포함할 수 있다! operator (연산자)는 +, -, *, /, %, //, ** 등이 있고, operand는 operator가 받게 되는 value들이다. 예를 들어, 2+3 에서 2와 3은 operands, + 는 operator이다. 이 expression을 run하면, 파이썬은 이 expression을 evaluate해서 값을 보여준다. 참고로 // 도 나누기, **는 제곱 연산을 나타낸다. %은 나머지를 보여준다. Types 파이썬의 모든 값들을 특정한 type을 갖고 있다. 예를 들어, int는 정수, float는 실수이다. 두 실수로 이루어진 expression의 결과는 실수이며, 정수와 실수가 포함된 연산의 결과..