2010-08-15 5 views
1

J'écris une application Java dans laquelle j'écris un programme de thread pour lire un fichier. Chaque fois que le programme est exécuté, il crée un thread et lit le fichier. Il prend du temps, je sais que le fichier ne changera jamais, donc je veux faire un thread démon qui lira le fichier une seule fois et le stocker dans une chaîne.comment contrôler le thread Daemon?

L'am face à plusieurs problèmes- 1) Une fois que j'ai démarré le thread démon, comment y accéder à nouveau? 2) Si je veux arrêter le thread démon, comment puis-je le faire?

Aidez-nous s'il vous plaît.

grâce,

Répondre

1

Je suppose, votre démon va vivre dans une autre machine virtuelle, et dans ce cas, vous ne pouvez pas accéder à la chaîne à partir de votre application.

2

Je pense que vous êtes confus avec le fonctionnement d'un thread démon. Un thread démon n'empêche pas l'application de quitter si c'est le seul thread en cours d'exécution; les threads utilisateur font. Si vous savez que le fichier ne changera jamais, pourquoi ne pas le charger une fois sans utiliser de thread? En outre, une fois que le chargement du fichier est terminé par votre thread démon (la méthode run() se termine normalement), il sera automatiquement géré par votre runtime, sauf si vous avez une boucle infinie dans votre méthode run(). IMO affichant un peu de code aiderait la cause ici.

+0

Je lis la question pour signifier qu'il fait le chargement du fichier dans un thread séparé parce que c'est un gros fichier et il ne veut pas que le thread principal bloque pendant le chargement du fichier. – Greg

0

Si vous souhaitez accéder à votre thread, gardez juste une référence à l'objet Thread. De même, si vous voulez accéder à votre chaîne, gardez une référence à l'objet String. Ces références peuvent être stockées en tant que variables statiques, mais elles ne doivent pas l'être.

L'arrêt d'un thread directement via Thread.stop() ou Thread.suspend() est déconseillé. Voir this article pour une description de pourquoi, et un "bon" moyen d'arrêter les discussions.

Questions connexes