URL: https://linuxfr.org/forums/programmation-c--2/posts/occupation-cpu Title: Occupation CPU Authors: JaguarWan Date: 2004年08月05日T00:31:33+02:00 Tags: Score: 0 Salut à vous, Je suis en train de coder un petit serveur en utilisant les pthreads. Le problème, c'est que le thread faisant tourner la fonction serveur utilise 99% du CPU, à cause des i/o non bloquantes. Le code ressemble à ça : void *server(void) { ....while ( contrôle du serveur) ....{ ......../* Prépare le select à grand coup de FD_SET */ ......../* Prépare la structure timeval, avec un timeout de 5000 uS */ ........select ......../* Teste le set de socket et lance des threads interpreteurs */ ......../* Teste une variable globale contrôlant l'état du serveur */ ....} ....pthread_exit(code d'erreur); } Comment faire pour réduire la charge CPU à quelque chose de plus raisonnable ? J'ai joué un peu avec le timeout de select, mais ça n'a pas amélioré les choses. D'autre part, on m'a dit qu'utiliser les variables globales en C, c'était Mal, mais je ne vois pas comment m'en passer avec les threads. Y a-t-il un procédé plus élégant ? Merci pour votre aide :)