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
571 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!

source:dev.to
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