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

Java2入門經典教程 11.1 了解線程[1]

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

    許多程序無論大小都包含或多或少獨立於其他段的代碼段如果代碼段可以在時間上並行執行效率會更高線程提供了這種方法當然如果像大多數人一樣你的計算機只有一個處理器對任意時刻你不能執行多於一個的計算但你可以並行地處理輸入/輸出操作使用線程的另一個原因是在需要連續運行的程序中允許同時處理程序中其他的活動例如在同一個程序中一個連續運行的動畫與另一個活動並行在web頁中 Java的小應用程序在你的浏覽器控制下執行線程使多個小應用程序可以同時一執行在這種情況下線程將在浏覽器控制下運行的程序分成段以便它好及時運行如果你只有一個處理器你的操作系統會造成一個錯覺由於在任意一個給定的時刻只有一個線程可以執行指令但這是一個非常有效的錯覺為了產生動畫你可以將繪制一系列靜止畫面的代碼放入一個循環中

    通常繪制圖像的代碼在計時器的控制一下運行因此是在一個固定的速率下執行比方說每秒當然當循環運行時同一個線程中不會發生其他的事如果你想有另一個運行的動畫它必須在一個獨立的線程中然後你的操作系統多任務的能力允許兩個線程分一享有效的處理器時間因此允許兩個動畫的運行在第章我們將研究如何編寫動畫程序

    讓我們先了解一下線程工作的原理考慮一個包含三個活動的非常簡單的程序

    從文件中讀出許多數據塊
    在每個數據塊中執行計算

    現在在線程間有不同種的競爭讀文件和寫結果都是在競爭因此需要有種方法當一個線程已在讀取輸入文件時阻止另一個線程從輸入文件中讀對輸出文件同理這個安排有另一個現象與前邊版本不同如果一個線程(比方說是threadl)讀一個塊(也許是bloclc )需要許多時間計算結果另一個線程(比方說是thread )可以想要讀下一個塊(可能是bock在thread 為block寫結果前對block計算和寫結果在輸入的不同次序中如果你不想得到這個結果你需要做點什麼解決這個問題在我們對確保線程不會沖突進行研究前讓我們先看看如何創建一個線程

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

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


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