병렬 및 동시성은 다중 스레드 프로그램에서 자주 사용됩니다. 그렇다면 병렬성과 동시성은 정확히 무엇을 의미할까요? 글쎄, 그것들은 똑같나요, 아니면 뭐죠?
가장 간단한 대답은 '아니요'입니다. 표면적으로는 매우 유사해 보이지만 동일한 용어는 아닙니다. 또한 둘 사이의 차이점을 발견하고 이해하는 데도 시간이 좀 걸렸습니다. 그래서 나는 이 튜토리얼에 이에 관한 기사를 추가하기로 결정했습니다.
동시성
동시성은 애플리케이션이 동시에 둘 이상의 작업을 실행하는 것을 의미합니다. 컴퓨터에 CPU가 하나만 있는 경우 응용 프로그램은 실제로 한 번에 두 개 이상의 프로그램을 실행할 수 없지만 응용 프로그램 내에서는 한 번에 두 개 이상의 프로그램이 실행될 수 있습니다. 다음 작업을 시작하기 전에 작업을 완전히 끝낼 수는 없습니다.
.
병렬
병렬은 애플리케이션이 작업을 작은 하위 작업으로 나누는 것을 의미합니다. 예를 들어 동시에 여러 CPU에서 병렬로 실행될 수 있습니다.
동시성과 병렬성의 상세한 비교
보시다시피 동시성은 응용 프로그램은 여러 작업을 처리합니다. 애플리케이션은 작업을 순차적으로 실행하거나 여러 작업을 동시에 실행할 수 있습니다.
즉, 병렬성은 애플리케이션이 단일 작업을 처리하는 방식에 관한 것입니다. 애플리케이션은 작업을 처음부터 끝까지 연속적으로 실행하거나 작업을 병렬로 실행할 수 있는 여러 하위 작업으로 분할할 수 있습니다.
보시다시피 애플리케이션은 동시적일 수 있지만 병렬적일 수는 없습니다. 이는 동시에 두 개 이상의 작업을 수행하지만 이 작업을 하위 작업으로 분리할 수 없음을 의미합니다.
애플리케이션은 동시가 아닌 병렬로 실행될 수도 있습니다. 이는 애플리케이션이 동시에 작업을 실행하고 작업이 여러 하위 작업으로 분리되어 병렬로 실행됨을 의미합니다.
또한 애플리케이션은 동시 또는 병렬이 될 수 없습니다. 이는 애플리케이션이 한 번에 하나의 작업에서만 작동하며 작업이 하위 작업으로 분리되지 않음을 의미합니다.
마지막으로 애플리케이션은 동시에 여러 작업을 수행할 수도 있고, 각 작업을 여러 하위 작업으로 분리하여 병렬로 실행할 수도 있습니다. 그러나 이 시나리오에서는 컴퓨터의 CPU가 이미 동시성 또는 병렬성으로 인해 사용량이 많기 때문에 동시성 및 병렬성의 이점 중 일부가 손실될 수 있습니다. 두 가지를 결합하면 성능이 약간 향상되거나 성능이 저하될 수도 있습니다. 동시성 모델을 맹목적으로 채택하기 전에 분석 및 측정을 확인해야 합니다.
이상은 Java 동시성 병렬성에 대한 자세한 소개입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!