예를들어 퀵소트(Quick Sort) 의 경우에,
스레드를 만드는데 비용이 전혀 들어가지 않는다고 가정하면
코드 진행상 왼쪽 오른쪽을 분할하고 이 작업은 서로 관련이 없으므로
스레드를 통하여 구현하면 더 빨라지게 될까요?
조금 많이 헷갈리는게,
프로그램 상에서 병렬적으로 프로그램이 진행된다는건,
여러 작업이 동시에 수행되는 것처럼 보이기 위해 쓰였다고 알고 있었습니다.
(영화보면서 웹서핑하기 등등..)
그런데 간혹보면 프로그램을 병렬적으로 구성하면 실행속도가 빨라진다는 설명이 있는데,
즉 이건,
스레드를 쓰는게 아니라 cpu의 멀티코어를 이용한다는 의미인가요?
제 짧은 지식으로는 스레드가 너무 많이 구현되어 있으면
실행되는 스레드를 교체하는데 쓰이는 비용, 또는 캐시히트를 사용하지 못하게 되서
더 느려질거 같아서요
그리고 멀티 프로세서라는건 CPU에 2개 이상의 프로그램이 동시에 실행된다는 의미인가요?
아니면 하나의 프로그램을 여러 CPU가 분담해서 처리한다는 건가요?