공통점
- 연산작업 단위 퍼포먼스 증가는 없다(싱글스레드 비동기는 말 그대로 스레드가 하나고, 멀티스레드는 GIL 때문에 동시에 한 스레드밖에 안 돌아가고)
- IO 대기시간을 줄여 프로그램 단위 퍼포먼스 증가가 있다
싱글스레드 비동기가 우월한 점
- 관리 비용이 작다
- 공유 메모리 문제가 없다
멀티스레드가 우월한 점
- CPython의 경우 C 레벨의 IO 작업은 GIL의 간섭을 받지 않는다
어떨 때 뭘 써야 유리한지 모르겠네
공통점
- 연산작업 단위 퍼포먼스 증가는 없다(싱글스레드 비동기는 말 그대로 스레드가 하나고, 멀티스레드는 GIL 때문에 동시에 한 스레드밖에 안 돌아가고)
- IO 대기시간을 줄여 프로그램 단위 퍼포먼스 증가가 있다
싱글스레드 비동기가 우월한 점
- 관리 비용이 작다
- 공유 메모리 문제가 없다
멀티스레드가 우월한 점
- CPython의 경우 C 레벨의 IO 작업은 GIL의 간섭을 받지 않는다
어떨 때 뭘 써야 유리한지 모르겠네
멀티프로세스
https://docs.python.org/3.6/library/multiprocessing.html
주제외 답변은 사양한다 멀티프로세스 몰라서 물어봤겠냐
여차하면 싱글스레드 비동기를 각각의 스레드에서 돌리는 방법도 있지롱
개인적으론 비동기가 유리할 때가 UI단에서 이벤트 받아서 작업을 비동기로 진행하고 끝나면 이벤트를 보내서 UI단에서 보여주는 걸 갱신할 때가 제일 좋은 것같음. 그 이외엔 딱히...