首页 > Java > java教程 > 线程间的同步和通信

线程间的同步和通信

Patricia Arquette
发布: 2024-11-27 07:37:09
原创
604 人浏览过

附加内容:

线程间的同步与通信
问题: 线程在访问共享数据时可能会互相干扰。

解决方案:
同步方法

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

登录后复制

同步块:

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

登录后复制

沟通示例:

线程之间使用wait()、notify()和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();
    }
}

登录后复制

结论

  • Java 中的多线程编程允许您创建更高效​​的应用程序,尤其是在多核系统上。
  • 使用同步正确管理对共享资源的访问非常重要。
  • Thread 类方法和 Runnable 接口是处理多任务的强大工具。

Sincronização e Comunicação entre Threads

以上是线程间的同步和通信的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板