Java에서 동시성이란 무엇인가요?
동시성: 특정 기간 내에 여러 작업을 번갈아 실행하는 것을 말합니다. 여러 개의 스레드가 동작하는 경우 CPU 실행 시간을 여러 시간으로 나누어 각 스레드에 해당 시간을 할당하여 실행합니다. 한 스레드의 코드가 실행되는 동안 다른 스레드는 일시 중단됩니다.
간단히 말하면 CPU는 동시에 여러 작업을 수행합니다.
Java 동시성은 멀티스레딩을 통해 달성됩니다. [추천 학습: javacourse]
jvm의 세계에서 스레드는 가상 머신에서 직렬화되는 관련 없는 병렬 공간과 같습니다. (물론 이는 좀 더 일반적인 설명입니다. 스레드는 서로 상호 작용할 수 있으며 반드시 직렬일 필요는 없습니다.)
멀티스레딩의 존재는 CPU를 쥐어짜고, 프로그램 성능을 향상시키고, 그리고 일정량의 디자인 복잡성을 줄입니다(현실적인 시간 사고를 통해 프로그램을 디자인).
멀티스레딩을 사용하는 이유는 무엇인가요?
우선:
컴퓨터 하단에서 보면 스레드는 프로그램 실행의 가장 작은 단위인 경량 프로세스에 비유할 수 있습니다. 전환 및 스케줄링 비용은 프로세스 비용보다 훨씬 적습니다. 또한 멀티 코어 CPU 시대는 여러 스레드가 동시에 실행될 수 있어 스레드 컨텍스트 전환의 오버헤드가 줄어드는 것을 의미합니다.
현대 인터넷 개발 추세의 관점에서 볼 때 오늘날의 시스템은 종종 수백만 또는 심지어 수천만 개의 동시성을 요구하며 멀티스레드 동시 프로그래밍은 높은 동시성 시스템의 공식적인 개발의 기반이 됩니다. 멀티스레딩 메커니즘을 사용하면 시스템의 동시성과 성능을 크게 향상시킬 수 있습니다.
컴퓨터의 하위 계층으로 더 깊이 들어가 보세요.
싱글 코어 시대: 싱글 코어 시대에 멀티 스레딩은 주로 CPU의 포괄적인 활용도를 향상시키는 것입니다. 및 IO 장치.
멀티코어 시대: 멀티코어 시대는 주로 CPU 활용도를 향상시키는 데 중점을 둡니다.
멀티스레딩을 사용하면 어떤 문제가 발생할 수 있나요?
동시 프로그래밍의 목적은 프로그램의 실행 효율성을 높이고 프로그램의 실행 속도를 높이는 것입니다. 그러나 동시 프로그래밍이 항상 프로그램의 실행 속도를 향상시키는 것은 아닙니다. 동시 프로그래밍에는 메모리 누수, 컨텍스트 전환, 교착 상태 등 많은 문제가 있을 뿐만 아니라 하드웨어와 소프트웨어, 유휴 리소스로 인해 제한되는 문제도 있습니다.
위 내용은 자바에서 동시성이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!