国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

多線程訪問共享對象和數據方法

2019-11-08 01:54:10
字體:
來源:轉載
供稿:網友

【1】 如果每個線程執行的代碼相同,可以使用同一個Runnable對象,這個Runable對象中有共享數據,例如,售票系統。

                     Runnable runnable = new Runnable(){

                      int count; 

                     public void run(){

                        count++;

                   }

                    };

                   new Thread(runnable ).start();

                   new Thread(runnable ).start();        

【2】如果每個線程執行的代碼不同,這時候需要用不同的Runable對象,有如下2種方式來實現Runnable對象之間的數據共享。

1、將共享數據封裝在另一個對象中,然后將這個對象逐一傳遞給各個Runable對象。每個線程共享數據的操作方法也分配到那個對象中完成。這樣容易實現針對該進行的各個操作的互斥和通信。         

2、將這些Runnable對象作為某一個類的內部類,共享數據作為這個外部類中的成員變量,每個線程對共享數據的操作方法也分配給外部類,以便實現對共享數據進行的各個操作的互斥和通信,作為內部類的各個Runnable對象調用外部類的這些方法。

3、上面2種方式結合:將共享數據封裝在另一個對象中,每個線程對共享數據的操作方法也分配到那個對象身上去完成,對象作為這個外部類中的成員變量或方法中的局部變量,每個線程的Runnable對象作為外部類中的成員內部類或局部內部類。

總之,要同步互斥的幾段代碼最好事分別放在幾個獨立的方法中,這些方法在放在同一個類中,這樣容易實現它們之間的同步互斥和通信。

         


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 如皋市| 凤山市| 怀柔区| 通许县| 武威市| 襄汾县| 榆树市| 望谟县| 田林县| 杭锦后旗| 邢台市| 马尔康县| 大冶市| 来宾市| 醴陵市| 东辽县| 龙里县| 拉萨市| 铜梁县| 乡城县| 梅州市| 邵武市| 明星| 双江| 阿合奇县| 广德县| 永嘉县| 上思县| 武冈市| 绥德县| 乡宁县| 南陵县| 吉首市| 建水县| 乾安县| 靖江市| 富川| 连州市| 望江县| 沾化县| 乌兰察布市|