(轉載)Java中線程及同步控制

          Posted on 2007-04-09 00:02 sunbaby 閱讀(312) 評論(0)  編輯  收藏 所屬分類: JAVA技術點滴

          線程概念的引入是為了實現并行處理,從而提高程序的效率。Java中的線程實現非常簡單,可以用兩種方式來創建線程,一種是實現Runnable接口,另一種是繼承Thread類重寫run()方法。兩種方式唯一的不同就是前者保留了繼承一個類的可能(因為Java只支持類的單繼承,但接口沒有此限制)。
            永遠都用start()方法來啟動一個線程,線程類中的run()可以被直接調用,但決不是啟動一個線程,二者有著本質的區別。

            用同步控制關鍵字synchronized來保護線程敏感數據,synchronized塊中的內容可以保證同一時刻只能被一個線程訪問,所以其中的數據是線程安全的。

            用Object類中的wait()和notify()方法可以實現線程間交互,但要記住wait()和notify()方法只有發生在同一個對象上才能真正實現線程間交互。被某一對象wait()方法阻塞的線程需要另外一個調用了同一對象notify()的線程干預才能恢復運行。notify()方法一次喚醒一個被wait()方法阻塞的線程,notifyAll()方法可以一次喚醒所有被wait()方法阻塞的線程。

          posts - 2, comments - 2, trackbacks - 0, articles - 25

          Copyright © sunbaby

          free web counter
          free web counter 點擊發送消息給我
          主站蜘蛛池模板: 嘉祥县| 长武县| 四子王旗| 阳信县| 广水市| 黄浦区| 闽侯县| 壤塘县| 含山县| 重庆市| 蚌埠市| 峡江县| 荆门市| 旺苍县| 平凉市| 七台河市| 宝应县| 武宁县| 新昌县| 库伦旗| 南开区| 武陟县| 正镶白旗| 南京市| 镇原县| 厦门市| 阿坝| 卫辉市| 扶余县| 合水县| 杭州市| 高陵县| 黄浦区| 大渡口区| 舒兰市| 夹江县| 德钦县| 鄂温| 鹤岗市| 都安| 明水县|