스레드 풀 스레드가 훨씬 더 합리적인를 만들 수 있습니다

 

스레드 풀의 스레드 수를 설정, 우리는 종종 더 나은, 스레드의 수가 설정되어 있지되어이 문제를 생각? 우리가 문제를 이해하기 전에 여러 스레드를 사용하는 이유 우리는 먼저 정확히 알고 있어야합니다.

왜 사용하는 멀티 스레딩

단위 시간당 더 많은 에너지를 처리 ​​할 수 ​​있습니다 : 우리가 프로그램의 성능을 향상시키는 것입니다 대답 할 수 있어야한다 다중 스레드를 사용하는 주요 목적은,이 사실은 성능을 개선하고 대기 시간이 요청에 전송되는 수신 된 데이터의 시간을 의미 줄이고 처리량을 넣어 의미 많은 요청.

거의 지연과 같은 두 가지 방법으로 처리량을 개선하기위한 대응하는 방법 : 최적화 알고리즘과 하드웨어가 컴퓨터의 성능을 최대화하기. 실행 시간이 단축되도록 최적화 알고리즘은, 시간과 공간 복잡성을 감소시킨다. 하드웨어의 성능을 극대화하기 위해, 콘크리트는 I / O 및 CPU 사용률을 개선하기 위해 의미, I / O 및 CPU 사용률 예를 개선하는 방법 : 경우 단일 코어 시스템 IO 작업 실행 및 CPU를 계산 한 프로그램이 IO 작업을 실행되는 코드를 할 때 두 개의 스레드가이 시간이이 코드를 실행하면 반대로 IO가 유휴 상태에서의 CPU 사실은, 유휴 상태, 스레드는 IO 작업, 실행 CPU 계산의 스레드, IO를 실행 및 CPU 사용률은 극단적으로 재생되지 않는 이유는 무엇입니까?

더 적절한를 만드는 방법 많은 스레드

위의 분석 후, 우리는 가장 높은 가동률의 하드웨어 스레드의 최선의 수를 만드는 방법을 많은 스레드 알고있다.

우리는 시나리오 스레드를 분석, 때문에 우리가 프로그램 CPU IO 작업과 계산이있는 경우 시간이 많이 소요되는 CPU의 계산보다, 우리는 IO를 많이 호출 할 수 있습니다 컴퓨팅 IO 작업. 집중적 인 프로그램 CPU CPU를 호출하면 IO의 프로그램은 작동하지 않습니다.

  • IO 집약적 인 컴퓨팅, 우리는 궁극적 인 하드웨어 활용도를 달성 어떻게 CPU가, 위의 예에서 볼에 데려 갔던 / R = 10이 소모 될 경우 시간이 많이 걸리는 IO / CPU 시간 소비 = 10 (우리가 일반적으로 APM에 대한 통계 도구를 사용할 수 있습니다 작업이 완료 이오 CPU는 그들의 활용도가 완료 때, 10 개 스레드에게 계산을 수행하는 CPU를 만들어야합니다 있도록이 비율)하는 실행 IO 작업, 우리는 IO 작업의 CPU가 유휴 상태 일 수 없을 때 희망 스레드를 만들 수 있습니다 이 코드의 구현에 시간의 100 %. 1 + I / O의 시간이 소요 / CPU 시간이 소요가 최적의 스레드 수의 경우, 멀티 코어 CPU = CPU 코어 번호 * :이 예는 우리가보다 효율적으로 구현하는 1 + 10 = 11 개 스레드를 만들려면, 그래서 우리는 공식을 얻을 [1 + (I / O가 소모 / CPU 시간을 가공).

  • 다른 요인이 방해를 방지하기 위해 스레드의 원인에 의한 CPU를 많이 사용하는, 이것은 매우 간단합니다, 감사 CPU = 라인에 스레드의 수는, 우리는 일반적인 감사 CPU + 1을 설정합니다.

추천

출처www.cnblogs.com/luizw/p/11798075.html