2012-08-04 4 views
1

Je travaille dans une application Java où je veux m'assurer qu'un processus donné dans l'ordinateur est inactif ex: - si nous commençons un processus de téléchargement dans notre ordinateur, mon application devrait être capable de le surveiller (processus) et de le dire quand c'est fini,Existe-t-il un moyen de trouver un processus donné?

+0

Je pense qu'il n'y a pas de moyen direct de le surveiller mais si je pars pour ce genre de solution ??? je peux facilement surveiller l'utilisation de la mémoire de ce processus et si l'utilisation de la mémoire est constante pendant un certain temps, je viens à une conclusion en disant que le processus est inactif ???? –

+0

Cela dépend du programme, mais il semble que le temps CPU total (pas l'utilisation actuelle du processeur) soit une mesure plus fiable que l'utilisation de la mémoire. – erickson

Répondre

0

La plupart des systèmes d'exploitation fournissent des commandes utilisateur pour surveiller l'activité d'un processus, comme la CPU ou les E/S. Ou, à un niveau supérieur, vous pouvez obtenir le statut (en cours ou non) d'un processus par son identifiant de processus. Vous pouvez utiliser ces outils à partir de Java, mais il n'y a rien dans le core Java pour le faire, et je ne connais pas non plus de bibliothèques à cette fin. Toutefois, si vous envisagez de tuer un processus parce qu'il est "inactif", cela ne serait généralement pas sans danger. Vous devez en savoir assez sur le processus en question pour être sûr qu'il est acceptable de le tuer, et si vous en savez beaucoup à ce sujet, vous trouverez probablement qu'il y a un moyen de le faire se fermer proprement.

0

Si vous démarrez le processus d'un autre processus, vous pouvez détecter quand il se termine avec Process.waitFor() Vous pouvez même utiliser son code de sortie.

Questions connexes