ThreadPool workerThread completionPortThreads
Bonjour,
J'ai une petite question concernant les threadPool. Je faisais un serveur en .Net remoting et je me suis demandé combien de threads en simultanés il pouvait executer. Alors j'ai trouvé la fonction ThreadPool.GetMaxThreads(out workerThreads, out completionPortThreads).
Alors je me suis renseigné sur msdn pour savoir à quoi correspond "workerThreads" et "completionPortThreads" :
workerThreads : contient le nombre maximal de threads de travail acceptés dans le pool de threads
completionPortThreads : comprend le nombre maximal de threads d'E/S asynchrones acceptés dans le pool de threads
Et j'avoue j'ai toujours pas compris le sens.
completionPortThreads correspond à des entrées fichiers ? ou accès mémoire aussi.
pour illustrer mon exemple j'ai publié la fonction suivante sur le serveur:
Code:
1 2 3 4 5 6 7 8 9 10 11
| public string Hello() {
Console.WriteLine("*** Hello Function call ***");
Console.WriteLine("Thread ID {0}",System.AppDomain.GetCurrentThreadId());
Console.WriteLine("From pool {0}", Thread.CurrentThread.IsThreadPoolThread);
int workerThreads;
int completionPortThreads;
ThreadPool.GetAvailableThreads(out workerThreads, out completionPortThreads);
Console.WriteLine("workerThreads {0} & completionPortThreads {1}", workerThreads, completionPortThreads);
Thread.Sleep(10000);
return "Hello";
} |
En là seul la variable completionPortThreads se décrémente, le "workerThreads" ne bouge pas.
Si vous avez une explication claire sur les deux termes ca serait cool.
Merci