나는 종종 병렬성과 동시성이 다르다는 것을 읽습니다. 답변자 / 댓글 작성자는 완전히 다른 두 가지라는 글을 쓰는 경우가 많습니다. 그러나 내 견해로는 관련이 있지만 그것에 대해 약간의 설명을하고 싶습니다.
예를 들어 멀티 코어 CPU를 사용하고 자체 스레드에서 실행 되는 x 작은 계산 (fork / join 사용) 으로 계산을 나눌 수 있다면 병렬 계산을 수행하는 프로그램이 있습니다 (왜냐하면) 아마도 어떤 시점에서 여러 스레드가 여러 코어에서 실행하는 것)하는 과 동시 옳다?
예를 들어 Java를 사용하고 UI 이벤트를 처리하고 Event Dispatch Thread에서 다시 페인트하고 내가 만든 유일한 스레드를 실행하는 경우 동시 프로그램 (EDT + GC 스레드 + 내 주요 스레드)이 있습니다. 등)이지만 평행하지는 않습니다.
이 권리를 얻었는지 ( "단일하지만 멀티 코어"시스템에서) 병렬 처리가 항상 동시성을 의미하는지 알고 싶습니다.
또한 멀티 스레드 CPU에서 멀티 스레드 프로그램이 실행되고 있지만 다른 스레드가 "병렬"을 사용하는 것으로 간주되는 완전히 다른 계산을 수행하고 있습니까?