0

CreateProcessAsUser Windows API 메서드를 사용하여 프로세스를 만듭니다. 보안 토큰으로 프로세스를 생성하고이를 작업 개체에 추가합니다.특정 프로세스의 최대 스레드 수는 어떻게 설정합니까?

보안 토큰이나 작업 개체 또는 다른 방법을 사용하여 응시 할 프로세스의 최대 스레드 수를 제한 할 수 있습니까?

저는 C#을 사용하고 있지만 해결책이 직접 Windows API 호출을 호출하는 경우 언어는 중요하지 않습니다.

+1

나는 프로세스가 새 스레드를 만들려고 시도 할 때 어떤 일이 일어날 지 고려해야한다고 생각한다. (특히 Windows API가 새 스레드를 만들고 실패 할 경우 API 호출이 쉽게 실패하지 않을 수 있습니다.) 그러나 프로세스에서 사용할 수있는 CPU 코어를 지정하고 Windows에서 사용할 수 있습니다 8 최대 CPU 비율을 지정할 수 있습니다. –

+0

@HarryJohnston, 귀하의 의견에 감사드립니다! 나는 CPU 사용 제한을 고려할 것이다. –

답변

2

특정 프로세스에 대한 코드를 작성하고이 문제를 수동으로 처리하는 경우를 제외하고 프로세스에 포함될 스레드 수를 제어 할 수 없습니다. Windows는 프로세스 당 쓰레드에 대한 제한이 없으므로 주소 공간 사용의 문제 일 뿐이므로 특정 프로세스에 대한 제한을 설정할 수있을뿐만 아니라 전체 시스템에 대해 설정할 수 없습니다.

1

프로세스가 생성 할 수있는 스레드 수는 사용 가능한 리소스에 의해서만 제한됩니다. 프로세스의 스레드 제한을 설정하는 방법은 없으며 특히 외부 적으로 설정할 수 있습니다.