Je suis actuellement à la recherche d'un moyen d'identifier les filets suspendus en java. Quelqu'un sait quelle est la meilleure façon de le faire?Détection automatique des filetages suspendus
Actuellement je pourrais penser de 2 façons de le faire:
- appel d'une méthode (de Callback-) périodiquement dans toutes les méthodes de l'application. Cela semble un "peu" complexe et disgracieux ... De plus je n'ai aucun contrôle en appelant des méthodes externes ...
- Un Thread supplémentaire qui génère périodiquement Thread-dumps pour tous les Threads (ou peut-être juste pour certains qui devraient être surveillés - comme je sais quel fil je veux surveiller) et analyse le résultat ("le fil est-il toujours au même point avec des verrous sur les mêmes objets", ...). Cela peut être un peu dangereux car le Thread peut de nouveau (!) Être au même point ... En passant - Y at-il un moyen facile d'obtenir le cliché Thread dans Java 1.4 (Je ne veux pas appeler un application externe). Je suppose avec 1.5 ou 1.6 il ya des méthodes pour faire facilement ceci ...
Je suppose que non de ces deux méthodes est une bonne solution ... Alors savez-vous un moyen de faire cela?
Comme je l'ai déjà dit: je ne veux pas utiliser toutes les applications externes ...
On dirait que nous nous approchons dangereusement d'un territoire à problèmes. –
Vraisemblablement, le client devra installer quelque chose - même s'il s'agit d'une nouvelle version de votre code. S'il le fait, pourquoi ne pas ajouter quelques outils supplémentaires? – Pool
Veuillez définir ce que vous voulez dire par "suspendre". Un thread sera en cours d'exécution du code ou en attente. La définition de la pendaison est ambiguë. Comment faites-vous la différence entre un fil supposé être en attente et votre définition de la pendaison? –