- 병렬성: 여러가지 작업을 동시에 실행 (물리)
- 동시성: 여러가지 작업을 동시에 실행 (논리)
- 비동기: 작업을 순서대로 처리하지 않아도 됨
예를 들어
병렬성O+동시성O: 우리가 보통 생각하는 복잡한 병렬 연산
병렬성X+동시성O: 싱글 코어의 스케쥴링 방식
병렬성O+동시성X: SIMD 연산
동시성O+비동기O: 우리가 보동 생각하는 코루틴
동시성O+비동기X: 풀링(Polling)
동시성X+비동기O: 아.. 이게 생각이 안나네. 좋은 예제 있나??
+
Fiber(가벼운 쓰레드?) 개념이 잼나더라.
갠적으로 아래 문서들이 유용했었음.
Overview of Modern Concurrency and Parallelism Concepts
https://nikgrozev.com/2015/07/14/overview-of-modern-concurrency-and-parallelism-concepts/
An Introduction To F# Agents
https://www.developerfusion.com/article/139804/an-introduction-to-f-agents/
C++ 코루틴 알아보기
https://luncliff.github.io/coroutine/ppt/[Kor]ExploringTheCppCoroutine.pdf
두명이 농사짓는게 병렬이고, 밭갈고 씨뿌리는걸 다 하는게 동시성이고, 밭 다 갈고 나서야 씨뿌리는게 아닌게 비동시성 맞지?
오 ㅋㅋㅋㅋㅋ 괜찮네.
파이버는 멀티태스킹용 코루틴 같은데
C++ 콘 자료에 있는것처럼 파이버랑 코루틴이랑 좀 다름.
동시성x 비동기는 변수 락거는거 생각나는데. 먼저 한놈은 누군지 상관없지만 동시에 쓰면 안됨
동시성 X 병렬성 O가 가능한 일임?
첫번째 링크에 들어가보면 ㅇㅇ We can have it vice versa as well. It is possible to have parallelism without concurrency.