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:
En là seul la variable completionPortThreads se décrémente, le "workerThreads" ne bouge pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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"; }
Si vous avez une explication claire sur les deux termes ca serait cool.
Merci







Répondre avec citation
Partager