MDA/MDD/TDD/DDD/DDDDDDD
          posts - 536, comments - 111, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          線程安全類

          Posted on 2010-11-15 13:53 leekiang 閱讀(295) 評論(0)  編輯  收藏 所屬分類: java
          當一個類已經很好的同步以保護它的數據時,這個類就稱為“線程安全的”。
          即使是線程安全類,也應該特別小心,因為操作的線程是間仍然不一定安全。

          import?java.util.Collections;
          import?java.util.LinkedList;
          import?java.util.List;

          public?class?TestThread?{
          ????
          public?static?void?main(String[]?args)?{
          ????????
          final?NameList?nl?=?new?NameList();
          ????????nl.add(
          "aaa");
          ????????
          class?NameDropper?extends?Thread?{
          ????????????
          public?void?run()?{
          ????????????????String?name?
          =?nl.removeFirst();
          ????????????????System.out.println(name);
          ????????????}
          ????????}
          ????????Thread?t1?
          =?new?NameDropper();
          ????????Thread?t2?
          =?new?NameDropper();
          ????????t1.start();
          ????????t2.start();
          ????}
          }

          class?NameList?{
          ????
          private?List?nameList?=?Collections.synchronizedList(new?LinkedList());

          ????
          public?void?add(String?name)?{
          ????????nameList.add(name);
          ????}
          ????
          public?String?removeFirst()?{//removeFirst方法必須同步
          ????????if?(nameList.size()?>?0)?{
          ????????????
          try?{
          ????????????????Thread.sleep(
          100);
          ????????????}?
          catch?(InterruptedException?e)?{
          ????????????????e.printStackTrace();
          ????????????}
          ????????????
          return?(String)?nameList.remove(0);
          ????????}?
          else?{
          ????????????
          return?null;
          ????????}
          ????}
          }



          http://lavasoft.blog.51cto.com/62575/99155
          主站蜘蛛池模板: 玉屏| 梁平县| 犍为县| 松原市| 天台县| 卢湾区| 阿合奇县| 盐池县| 龙泉市| 巴青县| 山西省| 临澧县| 绥江县| 中西区| 尼勒克县| 化德县| 重庆市| 宝坻区| 新巴尔虎右旗| 益阳市| 铜鼓县| 原平市| 交城县| 正定县| 邻水| 南陵县| 苗栗市| 眉山市| 平舆县| 阳高县| 辰溪县| 赤峰市| 阳朔县| 明水县| 边坝县| 喀喇沁旗| 临海市| 锦屏县| 榆林市| 常山县| 菏泽市|