diff --git "a/6\354\236\245/\354\235\264\354\203\201\354\241\260.md" "b/6\354\236\245/\354\235\264\354\203\201\354\241\260.md" new file mode 100644 index 0000000..798e08e --- /dev/null +++ "b/6\354\236\245/\354\235\264\354\203\201\354\241\260.md" @@ -0,0 +1,18 @@ +# 동시성 + +동시성은 동시에 발생하는 것처럼 동작하는 것으로, 실제로 병렬처리를 의미하지는 않는다. +그래서 리액트 동시성을 보면 마치 동시에 동작하는 것처럼 왓다리갓다리 하면서 동작한다. +이놈 렌더링해야지~ 어? 아직 못하네? 그럼 쟤부터 해야지~ 다시 돌아와서 이거 해야지~ 이런... + +# 시간적 결합 + +시간의 흐름과 관계없는 작업을 잘 파악하자. +근데 가끔은 시간의 흐름과 관계없게 작성할 경우 연산 비용이 많이 든다거나, 네트워크 요청 횟수가 늘어난다거나 하는 경우가 있을 때도 있던데... 이럴 때도 시간적 결합을 끊어야 하는건가? + +# 파이와 종업원 + +예시에서는 세마포어를 사용하여 한 종업원이 진열장에 접근하면 다른 종업원은 접근하지 못하게 한다. +근데 이러면 병렬로 처리되던 로직을 병행으로 바꾼 것 아닌가? +대기 시간이 생겨서 효율이 떨어지고, 복잡도가 올라간다. +그리고 예시에서는 진열장 하나에 해당하는 세마포어 뿐이지만, 실제 가게를 운영하면 수많은 세마포어가 생길 것인데 과연 좋은 방법이라고 볼 수 있을까? +