Java 里面進行多線程通信的主要方式就是共享內(nèi)存的方式,共享內(nèi)存主要的關(guān)注點有兩個:可見性和有序性原子性。Java 內(nèi)存模型(JMM)解決了可見性和有序性的問題,而鎖解決了原子性的問題,理想情況下我們希望做到“同步”和“互斥”。有以下常規(guī)的實現(xiàn)方法:
將數(shù)據(jù)抽象成一個類,并將數(shù)據(jù)的操作作為這個類的方法。
Runnable 對象作為一個類的內(nèi)部類。
一. 將數(shù)據(jù)抽象成一個類,并將數(shù)據(jù)的操作作為這個類的方法
將數(shù)據(jù)抽象成一個類,并將對這個數(shù)據(jù)的操作作為這個類的方法,這么設(shè)計可以和容易做到同步,只要在方法上加”synchronized“。
二. Runnable 對象作為一個類的內(nèi)部類
將 Runnable 對象作為一個類的內(nèi)部類,共享數(shù)據(jù)作為這個類的成員變量,每個線程對共享數(shù)據(jù)的操作方法也封裝在外部類,以便實現(xiàn)對數(shù)據(jù)的各個操作的同步和互斥,作為內(nèi)部類的各個 Runnable 對象調(diào)用外部類的這些方法。
更多關(guān)于“Java培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒已有十余年的培訓經(jīng)驗,課程大綱更科學更專業(yè),有針對零基礎(chǔ)的就業(yè)班,有針對想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實現(xiàn)java程序員夢想。