본문 바로가기

Study/신입 자라기

[Study] 신입 자라기 - 76

 

신입 자라기 76일 차, 월요일

Daily Routine

시간 Routine
6 : 50 기상
7 : 10 ~ 8 : 10 출근 시간
8 : 10 ~ 9 : 10 헬스
9 : 10 ~ 9 : 30 샤워
9 : 30 ~ 9 : 50 출근
9 : 50 ~ 10 : 00 1. 짐정리
10 : 00 ~ 11 : 30 1. 기능 구현
11 : 30 ~  12 : 30 점심 시간
12 : 30 ~ 18 : 00 1. 기능 구현
18 : 00 ~ 19 : 00 저녁 시간
19 : 00 ~ 20 : 50 1. 뭐햇지
20 : 50 ~ 23 : 00 퇴근 및 휴식
23 : 00 ~ 24 : 00 1. 블로그 포스팅

파이썬 멀티 스레드

  • 멀티 쓰레딩이 불가능한 건 아니고, 병렬 실행이 불가능
  • 파이썬은 모든것이 객체로 이루어져 있는데, 각 객체는 참조 횟수를 저장하는 필드가 있음
참조 횟수 : 그 객체를 가리키는 참조가 몇 개 존재하는지를 나타내는 것
  • 파이썬에서 GC(Garbage Collection)는 참조 횟수가 0이 되면, 해당 객체를 메모리에서 삭제함
  • 여러 개 스레드가 파이썬 인터프리터를 동시에 실행하면 Race Condition이 발생할 수 있음
Race Condition : 여러 쓰레드가 하나의 값에 동시에 접근해서 값이 올바르지 않게 읽히는 상태
  • Race Condition은 뮤 텍스(Mutex)를 이용해 예방하는데, 다중 스레드가 한 공유 자원에 접근하는데 그때 자원을 사용할 수 있는 권한 같은 것임
  • 즉, 파이썬에서 모든 것은 객체이며 참조 횟수를 가진다. 따라서 모든 객체에 대한 뮤 텍스(권한) 같은 것을 줘야 하는데 매우 비효율적이기 때문에 애초에 한 스레드가 인터프리터를 실행할 때 다른 스레드들이 실행하지 못하도록 막음
  • 따라서 멀티스레드는 가능하지만 병렬 실행은 불가능

 

피그 브라더님의 블로그를 참조했습니다.

https://it-eldorado.tistory.com/160

 

[Python] GIL (Global Interpreter Lock) 이해하기

이번 포스팅은 Python만의 특징 중 하나인 GIL(Global Interpreter Lock)의 개념에 대해 알아볼 것이다. Python 프로그래머라면 한 번쯤은 들어봤을 법한 용어지만, 정확하게 알고 있지 못한 분들도 많을 것

it-eldorado.tistory.com


출근길에 보는 CS

가상 메모리 매핑 테이블
  • 가상 주소는 실제 물리 주소 혹은 스왑 영역 중 한 곳에 위치
  • 메모리 관리자는 가상 주소와 물리 주소를 1 : 1 매핑 테이블로 관리
버퍼
  • 두 장치 사이의 속도 차이를 완화하는 역할
  • 예를 들어 입출력 장치는 CPU의 처리 속도에 비하면 매우 느림. 데이터를 읽을 때 마하 하나씩 전송하면 작업량에 비해 전송하는 양은 매우 적을 것임. 하지만 버퍼 사이즈만큼 모아서 전송하면 적은 작업량으로 많은 데이터를 전송할 수 있음

'Study > 신입 자라기' 카테고리의 다른 글

[Study] 신입 자라기 - 78  (0) 2022.06.03
[Study] 신입 자라기 - 77  (0) 2022.06.01
[Study] 신입 자라기 - 75  (0) 2022.05.27
[Study] 신입 자라기 - 74  (0) 2022.05.27
[Study] 신입 자라기 - 73  (0) 2022.05.25