safisoft
Messages postés489Date d'inscriptionvendredi 30 janvier 2004StatutMembreDernière intervention13 mai 20096 28 oct. 2005 à 09:17
à mon avis, si la
temporisation n'est pas exacte c'est que t'as pas pris en compte les
temps d'execution des autres instructions avant et après le sleep.
hercules83
Messages postés6Date d'inscriptionvendredi 21 novembre 2003StatutMembreDernière intervention28 octobre 2005 28 oct. 2005 à 10:44
Je suis en multi thread avec des choix de cadence différents.
Pour regler un thread de cadence cadency , je fais :
Recuperation du temps tps1
execution du code
Recuperation du temps tps2
calcul de la difference delta
si delta < cadency
Recuperation du temps tps3
Sleep( cadency -delta)
Recuperation du temps tps4
et la surprise (tps4 - tps3) > cadency -delta
Par contre, il y a deux types de machines virtuelles : Native Thread et Green Thread.
Native => C'est l'OS qui gère les threads.
Green => C'est une implémentation interne à la JVM qui gère les threads.
Préférer, dans la plupart des cas, une native thread.
De plus, ça reste de la gestion de Thread, avec donc des temps d'exec de processus et de gestion.
Reste après la commutation de contexte.
Donc ton temps d'"assoupissement" n'est que approximatif, même si avec
les machines actuelles et en l'absence de surcharge CPU, ces temps
devraient rester négligeables.