멀티 스레드와 멀티 프로세스
, 동기와 비동기, 블락과 논블락 - 1
, 동기와 비동기, 블락과 논블락 - 2
듣고 정리싱글 스레딩 (single-threaded process)
: 하나의 프로세스에서 하나의 스레드만 사용하는 것멀티 스레딩 (multithreaded process)
: 여러 개의 스레드를 사용하는 것I/O Bounded
작업 많은 경우. (ex. 여러 사이트 크롤링)CPU Bounded
작업 많은 경우 (ex. 머신러닝 전처리 등)동기화 작업
: 작업처리순서 컨트롤, 공유자원 접근 컨트롤을 설정하는 작업임계 영역 (Critical Section)
: 동일한 자원을 여러 스레드가 동시에 접근하는 작업 실행하는 코드 영역Lock (락)
: 공유 객체에 여러 스레드가 동시에 접근하기 못하도록 잠그는 기능. 모든 객체가 힙 영역에 생성될 때 자동으로 만들어짐콜백(Callback)
방식 많이 활용함수 A가 함수 호출 시 프로세스 제어권은 함수B로 넘어감. 함수B가 프로세스 제어하는 동안 함수 A는 아무것도 하지않고 기다리는데, 이때 함수 A는 블락 상태에 있다고 하고 함수B는 블락킹 함수라고 한다.
함수A에서 함수B를 스레드로 생성하는 함수 호출. 스레드 생성 함수는 함수B를 별도 스레드로 생성하고 특정객체 바로 리턴
함수 A가 있는 스레드는 함수 호출 이후의 일을 계속 하게 되는데 이렇게 '블락'되지 않은 상태를 '논블락' 상태라고 하고 호출 되어도 호출한 함수를 블락하지 않는 B 함수를 논블락킹 함수라고 한다.
BNPL (Buy Now , Pay Later)
: 지금 사고 나중에 내라 는 이름대로, 소비자가 결제하면 BNPL 업체가 판매자에게 먼저 대금을 지불, 소비자는 여러 차례에 걸쳐 BNPL 업체에 돈을 갚는 형식의 결제 시스템. 이 과정에서 기존 신용카드와는 달리 신용 점수 필요없음 (순살브리핑: 발등에 불 떨어진 BNPL 업체들?💰)