"높은 동시성 및 멀티스레딩"은 항상 함께 언급되어 둘이 동등한 것처럼 보이지만 실제로는 높은 동시성 ≠ 멀티스레딩
멀티스레딩(추천 학습 : 웹 프론트 엔드 비디오 튜토리얼 )
멀티 스레딩은 Java의 기능입니다. 이제 CPU는 멀티 코어 및 멀티 스레딩으로 실행 효율성을 높이기 위해 동시에 여러 작업을 수행할 수 있기 때문입니다. JVM에서 Java는 데이터 처리 효율성을 높이기 위해 이러한 멀티스레딩 메커니즘을 제공합니다. 멀티스레딩은 CPU에 해당하고 높은 동시성은 액세스 요청에 해당합니다. 단일 스레드를 사용하여 모든 액세스 요청을 처리하거나 여러 스레드를 사용하여 동시에 액세스 요청을 처리할 수 있습니다.
과거 단일 CPU 시대에는 단일 작업이 특정 시점에 단일 프로그램만 실행할 수 있었습니다. 나중에는 컴퓨터가 동일한 시점에 여러 작업이나 프로세스를 병렬로 실행할 수 있는 멀티 태스킹 단계로 발전했습니다.
실제 의미에서 "동일한 시점"은 아니지만 여러 작업이나 프로세스가 CPU를 공유하며 여러 작업 간의 CPU 전환을 완료하는 것은 운영 체제에 맡겨져 각 작업이 기회 특정 시간 조각을 실행해 보세요.
나중에 멀티스레딩 기술이 개발되어 프로그램 내에서 여러 스레드를 병렬로 실행할 수 있게 되었습니다. 스레드 실행은 프로그램을 실행하는 CPU로 생각할 수 있습니다. 프로그램이 멀티스레딩으로 실행되면 여러 CPU가 동시에 프로그램을 실행하는 것처럼 보입니다.
간단히 말하면 멀티스레딩은 다음과 같이 이해될 수 있습니다. 멀티스레딩은 높은 동시성을 처리하기 위한 프로그래밍 방법입니다. 즉, 동시성은 멀티스레딩으로 구현되어야 합니다.
높은 동시성
높은 동시성은 JAVA만의 것이 아닙니다. 더 나은 인터넷 서비스를 제공하기 위해 제안된 광범위하고 언어 독립적인 개념입니다.
일반적인 시나리오: 12306 기차표 잡기, Tmall Double Eleven 플래시 세일 이벤트 등 이러한 상황이 발생하면 시스템은 이 기간 동안 리소스 요청, 데이터베이스 작업 등과 같은 많은 작업을 수행하게 됩니다. 높은 동시성을 제대로 처리하지 않으면 사용자 경험이 저하될 뿐만 아니라(요청 응답 시간이 너무 길어짐) 심각한 경우에는 OOM 예외가 발생하고 시스템 작동이 중단될 수도 있습니다.
시스템이 높은 동시성에 적응할 수 있으려면 하드웨어, 네트워크, 시스템 아키텍처, 개발 언어 선택, 데이터 구조 사용, 알고리즘 최적화, 데이터베이스 최적화를 포함한 모든 측면에서 시스템을 최적화해야 합니다. 등... 그리고 멀티스레딩은 솔루션 중 하나일 뿐입니다.
위 내용은 다중 스레드 동시성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!