멀티 스레딩의 가장 중요한 용도 중 하나는 GUI 프로그래밍입니다. 단일 스레드 만있는 경우 단추를 클릭하면 어떻게됩니까? 컨트롤이 GUI로 반환되기 전에 버튼이 실행되는 모든 액션을 기다려야합니다. 그것을 문맥에 넣기. 브라우저가 단일 스레드에서만 실행되었고 Linux ISO라고 말하면 다운로드가 진행되는 동안 단일 스레드가 다운로드되어 사용되지 않으므로 브라우저 전체가 사용할 수 없게됩니다. 사용자 행동에 응답 할 수 있습니다. 다운로드를 취소 할 수도 없습니다.
여러 스레드를 사용하면 백그라운드에서 다운로드가 진행되는 동안 브라우저를 계속 사용할 수 있습니다.
프로그램 속도를 높일 수있는 많은 용도가 있습니다. 예를 들어, 대형 데이터 세트 검색. 이를 덩어리로 나눌 수 있으며 각 스레드는 덩어리를 검색 할 수 있습니다. 그런 다음 해당 스레드를 결합하여 결과를 완료하고 수집 할 수 있습니다.
또한, 세마포어가 항상 필요한 것은 아닙니다. 그것은 당신이하는 일에 달려 있습니다. 단일 작업 대기열에서 작업을 소비하는 스레드가 여러 개있는 경우 다른 스레드가 작업을 요청할 수 있기 전에 작업을 대기열에서 제거하여 동일한 작업을 2 개의 스레드에 할당하지 않도록해야합니다. 이 경우 세마포어를 사용하여 작업 대기열을 "스레드 안전성"으로 만듭니다. 다른 한편으로는, hootsuite 또는 다른 소셜 미디어 데스크톱 클라이언트 중 하나 (연결된 경우)는 연결된 플랫폼별로 스레드를 실행하여 여러 플랫폼에서 동시에 업데이트를 가져올 수 있습니다.
다중 스레드는 하나 이상의 프로세서 또는 하이퍼 스레딩 기능이있는 프로세서가있는 경우 응용 프로그램의 속도를 높입니다. 그렇지 않으면 그럴 수 없습니다. –
동시에 실행할 수없는 경우에도 다중 스레드를 가질 가치가 있는지 묻고 있습니까? –
가까운 투표에 동의하지 않는 경우, 이것은 매력적인 질문에 대한 답입니다. –