
사용할 수 있는 최대 스레드 수를 어떻게 알 수 있나요? 저는 프로그래밍이 처음이어서 알아야 할 것이 무엇인지 알아내려고 노력하고 있습니다. Amazon S3에서 다운로드할 수 있는 파일이 950GB입니다. 나는 각각 해당 양의 절반을 다운로드하는 두 개의 스레드를 병렬로 실행하면서 사용할 수 있다고 생각했습니다.
내 애플리케이션을 멀티스레딩하여 Amazon S3에서 대량 데이터 다운로드 속도를 높이고 싶지만 내 컴퓨터가 멀티스레딩을 지원하는지 먼저 아는 것이 좋을 것입니다.
컴퓨터 사양:
- 모델: MacBook(13인치, Mid 2010, A1342)
- 프로세서:2.4GHz 인텔 코어 듀오
- 메모리: 8GB 1067MHz DDR3
- 소프트웨어: MacOS 시에라 10.12.6
프로세서가 매우 오래되고 단종되어 Intel 하이퍼스레딩을 지원하지 않습니다. 멀티스레딩에 좋은지는 잘 모르겠습니다. 하지만 멀티스레딩을 지원할 수 있다면 얼마나 많은 스레드를 지원할 수 있으며, 너무 많은 스레드를 사용하면 성능에 영향을 미치나요?
틀렸다면 정정해주세요. 하지만 읽어봤습니다.비하이퍼스레딩 코어는 스레드를 1개만 지원할 수 있습니다., 그래서 내 프로세서가 최대 2개의 스레드를 지원할 수 있고 그 이후에 더 많은 스레드가 있으면 효과가 미미할 것이라고 생각합니다.
답변1
귀하의 질문에는 몇 가지 잘못된 가정이 있으므로 여기서 명확히하겠습니다.
- 싱글코어 CPU에서도 멀티스레딩이 가능합니다.실행은 시간에 따라 분할되므로 특정 순간에 1개의 스레드가 활성화되지만 전체 스레드 실행은 병렬입니다.
- 멀티스레딩은 속도 향상과 동일하지 않습니다.순진하게 설계된 경우 멀티스레딩 앱은 항상 단일 스레드 앱보다 수십 배 또는 수백 배 느립니다.
- 99%의 경우 외부 네트워크에서 다운로드하는 것은 멀티스레딩에 의존하지 않습니다.NetAnts, ReGet 및 전화 접속 모뎀 시대의 기타 앱에 구현된 것처럼 다중 범위 HTTP 다운로드를 살펴보는 것이 가치가 있을 수 있습니다. 그러나 다양한 네트워크 정책 및 관련 서버로 인해 다중 범위 다운로드가 일반 다운로드보다 더 빠를 수 있다는 보장은 없습니다.
그래서 결국. 앱에서 측정항목을 반드시 수집해야 합니다. 가장 느린 작업이란 무엇입니까? 그런 다음 더 빠른 속도를 얻으려면 다시 디자인하십시오.
답변2
사용할 수 있는 최대 스레드 수를 어떻게 알 수 있나요?
Intel Core Duo에는 2코어 단일 스레드 프로세서가 있기 때문에 2개의 스레드가 있습니다. 각 코어에는 단일 스레드의 기능이 있습니다.
하지만 멀티스레딩을 지원할 수 있다면 얼마나 많은 스레드를 지원할 수 있으며, 너무 많은 스레드를 사용하면 성능에 영향을 미치나요?
2개의 스레드를 지원합니다.
그래서 내 프로세서가 최대 2개의 스레드를 지원할 수 있고 그 이후에 더 많은 스레드가 있으면 효과가 미미할 것이라고 생각합니다.
2개 이상의 스레드를 처리할 수 없습니다. 하드웨어로 인해 스레드를 2개만 생성할 수 있으므로 다중 스레드 응용 프로그램에는 스레드가 2개만 있습니다.