Maison > Java > javaDidacticiel > Synchronisation et communication entre les threads

Synchronisation et communication entre les threads

Patricia Arquette
Libérer: 2024-11-27 07:37:09
original
645 Les gens l'ont consulté

Contenu supplémentaire :

Synchronisation et communication entre les threads
Problème : Les fils de discussion peuvent interférer les uns avec les autres lors de l'accès aux données partagées.

Solution :
Méthodes synchronisées

synchronized void synchronizedMethod() {
    // Código sincronizado
}

Copier après la connexion

Blocs synchronisés :

synchronized (this) {
    // Código sincronizado
}

Copier après la connexion

Exemple de communication :

Communication entre les threads utilisant wait(), notify() et notifyAll() :

class SharedResource {
    private boolean flag = false;

    synchronized void produce() {
        while (flag) {
            try {
                wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        System.out.println("Producing...");
        flag = true;
        notify();
    }

    synchronized void consume() {
        while (!flag) {
            try {
                wait();
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        System.out.println("Consuming...");
        flag = false;
        notify();
    }
}

public class ThreadCommunication {
    public static void main(String[] args) {
        SharedResource resource = new SharedResource();

        Thread producer = new Thread(resource::produce);
        Thread consumer = new Thread(resource::consume);

        producer.start();
        consumer.start();
    }
}

Copier après la connexion

Conclusion

  • La programmation multithread en Java permet de créer des applications plus efficaces, notamment sur les systèmes multicœurs.
  • Il est important de gérer correctement l'accès aux ressources partagées grâce à la synchronisation.
  • Les méthodes de la classe Thread et l'interface Runnable sont des outils puissants pour travailler en multitâche.

Sincronização e Comunicação entre Threads

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal