国产探花免费观看_亚洲丰满少妇自慰呻吟_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對象作為外部類中的成員內部類或局部內部類。

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

         


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 东海县| 泽库县| 大荔县| 大渡口区| 山东省| 江北区| 托克托县| 荥经县| 正蓝旗| 呼玛县| 民县| 运城市| 台南市| 离岛区| 日土县| 南川市| 漾濞| 娄底市| 都兰县| 江津市| 临夏县| 长乐市| 潼关县| 手游| 马关县| 文水县| 兴仁县| 疏勒县| 册亨县| 白银市| 海伦市| 曲水县| 德州市| 金秀| 阳东县| 眉山市| 咸阳市| 南木林县| 台东市| 石阡县| 湖北省|