首頁 > Java > java教程 > 線程間的同步與通信

線程間的同步與通信

Patricia Arquette
發布: 2024-11-27 07:37:09
原創
614 人瀏覽過

附加內容:

執行緒間的同步與通訊
問題: 執行緒在存取共享資料時可能會互相干擾。

解:
同步方法

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板