Open devjy39 opened 1 year ago
병렬 처리는 작업을 나누고 나눈 작업들을 스레드에 할당하는데 단일 코어의 경우 스레드가 1개만 생성 되어 작업을 수행합니다. 이는 순차 처리처럼 이루어지지만, 작업을 나누고 나눈 작업들을 할당하는 동작을 수행하며 오버헤드가 발생하므로, 순차 스트림에 비해 비효율적으로 처리됩니다.
동기/비동기와 블록킹/논블록킹의 차이는 작업 수행 방식의 관점 차이입니다 . 동기/비동기는 요청한 작업에 대해 완료 여부를 신경 써서 작업을 순차적으로 수행할지 아닌지에 대한 관점이고,블로킹/논블록킹은 단어 그대로 현재 작업이 차단되느냐 아니냐에 따라 다른 작업을 수행할 수 있는지에 대한 관점입니다. compute와 join의 경우 호출한 스레드가 다른 작업이 끝날 때까지 작업을 멈추고 기다려야 되므로 동기적이며 블록킹입니다.
[Is fork / join multithreaded?] [Breaking Down the Differences: Non-Blocking vs. Asynchronous Programming and When to Use Each]
문제
contents - 세부 내용
참고