熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

Java2入門經典教程 11.2 管理線程[1]

2013-11-23 19:58:01  來源: Java高級技術 

    在這章的兩個例子中我們看到線程被啟動然後競爭計算機資源因為三個線程對處理器的竟爭采用不受控制的方法所以線程的輸出次序混亂在程序中通常這是不希望看到的在絕大多數使用線程的例子中線程執行的方法需要被管理才能使線程彼此不產生沖突

    當然在我們的例子中程序被故意構造成通過輸出一個名字中途釋放處理器的控制

    雖然這是非常做作的但類似情況也會在現實中出現特別是在重復操作的線程中出現能夠認識到當一個原始語句執行時一個線程能被中斷是很重要的例如假設一個線程執行語句
    i=i+

    在這個語句仍在執行時線程的執行被中斷是極有可能的也許存i值被取來增之後但在結果被存回i之前沒有適當控制另一個訪問i的線程會在這一時刻改變i的值結果是在這個線程中i沒有增

    兩個或多個線程分享一個公用資源的地方如文件或內存塊你需要決策確保一個線程不能修改另一個線程正在使用的資源當一木線程更新文件中的一個記錄時而另一個線程中途檢索同一個記錄是帶來災難的方法管理這種情況的一個方法是使用線程中包含的同步(synchronization)

    同步

    同步的目標是當幾個線程想訪問同一個資源時確保在仟何指定時刻只能有一個線程訪問它用同步管理你的線程執行有兩種方法
    在方法一級管理代碼包括同步方法
    在塊一級管理代碼一使用同步塊
    首先我們看看怎麼使用同步方法

Java入門經典在線教程完整版 

[]  []  []  []  []  []  []  []  []  


From:http://tw.wingwit.com/Article/program/Java/gj/201311/27745.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.