Un programme Java qui ne peut faire qu'une chose à la fois a des limites importantes dans la complexité des tâches que le programmeur peut lui demander d'effectuer. Pour permettre aux programmes d'effectuer plusieurs opérations à la fois , les programmeurs Java peuvent créer de nouveaux processus par l'instanciation threads. En dépit de leur utilité et de la nécessité pour les applications complexes , les discussions ne sont pas sans limites. Discussions
programmeurs Java créer des threads d'une classe qui implémente l'interface " Runnable " . Les fils agissent comme des programmes au sein des programmes , car ils doivent comprendre le « run () » méthode , qui se comporte comme le «public static void main () " dans la classe principale du programme . Le programmateur démarre un thread par la création d' une nouvelle instance de l'objet, puis en appelant sa méthode "run" . Une fois que les discussions commencent à courir , ils peuvent accéder à des variables et appeler des méthodes d'autres objets.
Limites de performance
Chaque thread d'un programme Java crée ajoute un fardeau de plus sur l'ordinateur de processeur . Si un programme Java se reproduit plusieurs discussions intensives du processeur , puis la machine sur laquelle le programme fonctionne peut ralentir de manière significative. Cela réduit la performance du programme . En plus de l'optimisation des performances , chaque processeur dispose d' un nombre maximal de threads du programme pour lequel il peut programmer le temps de traitement . Ce nombre varie d'un système à , et est disponible dans sa documentation.
De Variable erreurs
Quand un programme est constitué d'un fil unique , le " méthode public void main () statique " , l'intégrité des données des variables du programme n'est pas un problème . Quand un programme a plusieurs threads accéder et de modifier les mêmes variables , une variable peut être changé par un autre thread . La modification se produit entre le moment où l'autre fil accède à la valeur de la variable et le temps qu'il modifie cette variable. Lorsque les threads sont des fonctions sur les variables qui dépendent de la valeur initiale de la variable performants , ce qui peut conduire à la corruption de données.
Locks
Pour éviter la corruption des données, la bibliothèque standard de Java comprend des objets appelés "serrures ". Lorsqu'un fil accède à une variable dans l'intention de le modifier, le fil peut appeler une méthode de verrouillage qui empêche d'accéder à d'autres fils de la variable jusqu'à ce que le fil de courant se fait avec elle . Après le thread libère son verrou , le thread suivant peut verrouiller la variable. Bien que cela empêche la corruption de données , il ralentit les performances des applications .