나는 (이 예를 들어 말하자면 50) 숫자로QThreadPool maxThreadCount 및 DLL
QThreadPool::globalInstance()->setMaxThreadCount(50);
을 스레드의 최대 수를 설정할 수있는 이상 우리가 할 수있는 동일한 응용 프로그램 내에서 쿼리가 반환되고 50 개가 반환됩니다. 그러나 QThreadPool :: maxThreadCount() 같은 응용 프로그램에서 호출 된 DLL 내에서 쿼리 할 경우 최대 스레드 수가 12 경우에만 반환합니다. 그런 다음 라이브러리의 maxThreadCount 늘릴 수있는 원하는 모든 수를 늘릴 수 있습니다. 응용 프로그램 maxThreadCount 번호에서.
그래서 QThreadPool :: globalInstance는 독립적 인 응용 프로그램 및 라이브러리에만 전역 적으로 존재합니까? Qt DLL과 같은 프로세스를 공유하는 응용 프로그램이 왜 QThreadPool과 같은 글로벌 QT DLL을 갖고 있지 않습니까?
이는 스레드 풀 I의 두 개의 개별 인스턴스를 의미합니다 추측. 스레드 수가 정적 변수이므로 EXE와 DLL 모두에 할당됩니다. 그렇다면 프로젝트가 처음부터 어떻게 연결되어 있었습니까? 앱에 하나의 스레드 풀 객체가 있는지 확인하는 방법이 있습니까? – AlexanderVX