Java核心知識 多線程併發 如何在兩個線程之間共享數據(二十七)


Java核心知識 多線程併發 如何在兩個線程之間共享數據(二十七)

Java 裡面進行多線程通信的主要方式就是共享內存的方式,共享內存主要的關注點有兩個:可見 性和有序性原子性。Java 內存模型(JMM)解決了可見性和有序性的問題,而鎖解決了原子性的 問題,理想情況下我們希望做到“同步”和“互斥”。有以下常規實現方法:

將數據抽象成一個類,並將數據的操作作為這個類的方法

1. 將數據抽象成一個類,並將對這個數據的操作作為這個類的方法,這麼設計可以和容易做到 同步,只要在方法上加”synchronized“

Java核心知識 多線程併發 如何在兩個線程之間共享數據(二十七)


Java核心知識 多線程併發 如何在兩個線程之間共享數據(二十七)

Runnable 對象作為一個類的內部類

2. 將 Runnable 對象作為一個類的內部類,共享數據作為這個類的成員變量,每個線程對共享數 據的操作方法也封裝在外部類,以便實現對數據的各個操作的同步和互斥,作為內部類的各 個 Runnable 對象調用外部類的這些方法。


Java核心知識 多線程併發 如何在兩個線程之間共享數據(二十七)


Java核心知識 多線程併發 如何在兩個線程之間共享數據(二十七)


分享到:


相關文章: