多個執行緒訪問共享物件和資料的方式

2022-03-20 17:56:41 字數 768 閱讀 9119

1.如果每個執行緒執行的**相同,可以使用同乙個runnable物件,這個runnable物件中有那個共享資料,例如,賣票系統就可以那麼做。

2.如果每個執行緒執行的**不同,這時候就需要用不同的runnable物件,有如下兩種方式來實現這些runnable物件之間的資料共享:

1)將共享資料封裝到另外乙個物件中,然後將該物件逐一傳遞給各個runnable物件(單獨定義myrunnable implements runnable,在構造方法中傳遞進來)。每個執行緒對共享資料的操作方法也分配到那個物件身上去完成。這樣容易實現針對該資料進行的各個操作的互斥和通訊。

2)將這些runnable物件作為某乙個類中的內部類,共享資料作為這個外部類中的成員變數,每個執行緒對共享資料的操作方法也分配給外部類,以便實現對共享資料進行的各個操作的互斥和通訊,作為內部類的各個runnable物件呼叫外部類的這些方法。

舉乙個例子:開啟4個執行緒,其中兩個執行緒對j加1,兩個執行緒對j減1。

public

class

mutilthreadsharedata

public

synchronized

static

void

sub()

public

static

void

main(string args)

}}).start();

new thread(new

runnable()

}}).start();}}

}

java中多個執行緒訪問共享資料的方式有哪些

多個執行緒對共同資料的訪問的實現,要根據情況而定 1 當訪問共同的 的時候 可以使用同乙個runnable物件,這個runnable物件中有這個共享資料,比如賣票系統就可以這麼做。或者這個共享資料封裝在乙個物件當中,然後對這個物件加鎖,也可以實現資料安全訪問。2 當各個執行緒訪問的 不同時 這時候要...

多執行緒要訪問共享資料的方式

1.如果每個執行緒執行的 相同,可以使用同乙個runnable物件,這個runnable物件中有那個共享資料,例如 賣票系統 2.如果每個執行緒執行的 不同,這時候需要不同的runnable物件,有如下2種方式來實現這些runnable物件之間的資料共享 1 將共享資料封裝到另外乙個物件中,然後將這...

執行緒訪問共享資料的3種方法

方法一 用內部類作為執行緒,根據內部類可以訪問外部類的全部成員的特性將擁有共享資料的類定義為外部類的成員變數或方法中的區域性變數,如下 public class multithread start new thread new runnable start class sharedata publi...