728x90
6. 파이썬 generator에 대해 설명해주세요
- Iterator를 생성해주는 함수
- Iterator : next() 메소드를 이용해 데이터를 순차적으로 접근할 수 있는 함수
- 함수 한에 yield 키워드를 사용함
- 한번에 모든 데이터를 메모리에 적재할 필요가 없어서 메모리 효율이 높고, 계산 결과가 필요할 때까지 계산을 늦츨 수 있으므로, 수행 시간이 긴 연산을 필요한 순간까지 늦출 수 있다는 장점을 가지고 있음
7. 파이썬의 GIL에 대해 설명해주세요
- GIL : 한번에 하나의 스레드만 수행할 수 있도록 인터프리터에 lock을 거는 기능
- 파이썬 객체는 Garbage Collection 기능을 위해, reference count를 가지고 있는데, 해당 객체를 참조할 때마다 reference count 값을 변경해야 함
- 멀티 스레드를 실행하게 되면, 각 스레드가 공유하는 객체들에 대해 각각 lock을 거는 경우, 성능상 이슈와 deadlock과 같은 위험이 존재하여, 인터프리터 레벨엣 한 시점에 실행하는 스레드는 1개로 제한 한 것임.
- 그래서 멀티 CPU 환경이라 할지라도, 파이썬 스레드는 어느 시점에나 1개의 스레드가 실행되는 단점이 있음
- 이를 해결하려면 multiprocessing 라이브러리를 사용하면 됨. 이 경우 개별 프로세스가 생성되고, 프로세스 별로 인터프리터 락이 걸리기 때문에, 동시 실행이 가능함
'두두의 IT > Computer Science' 카테고리의 다른 글
[OS] 주요 지식 (0) | 2022.08.30 |
---|---|
웹(Frontend, Javascript) 기본 지식 (0) | 2022.08.30 |
Java 지식 (0) | 2022.07.19 |
CS 기본 지식 (0) | 2022.07.19 |
[DB] RDBMS 질의어 (0) | 2022.07.02 |