java多線程編程三步曲[2]
關鍵字: java 萬一你要做的不是一個簡單的重復作業,java.lang.Thread類就派上了用
關鍵字:
java 萬一你要做的不是一個簡單的重復作業,java.lang.Thread類就派上了用場。它允許你自己控制基本功能。通過創建Thread的一個子類,你可以使你的系統脫離,并進行一個長時間運行的作業,如從
網絡上讀取一個文件,而不阻礙你的其它程序的運行。這種長時間運行的作業將在run方法中定義。
第二種方式是創建Thread類的子類并在子類中實現run方法,或在實現runnable的類中實現run方法,并將這個實現傳遞給Thread的構造函數。
你可能會問有什么區別。
Java編程語言僅支持單一繼承。如果你設計的調用是除了Thread以外的其它類,你可以是你的類實現Runnable,而它可以是你的作業被執行。否則,你定義Thread的子類來運行你的Run方法,在處理過程中不再添加其它操作。
對于創建Thread子類的第三種情況,下面的程序生成了一個新的線程來計算一個特定URL的字符數,這個URL是通過命令行傳遞進來的。在這進行過程之中,實現Runnable的第四種情況被演示,打印出重復的消息。
注意在實現Runnable的這后一種情況下,你必須提供重復消息的代碼。你必須同時sleep,以分配時間并完成操作。在兩種情況下,與使用Timer相比較。這段程序的最后一部分包含有你從命令行讀取命令以觸發程序結束。注意在系統讀取URL并打印消息的同時,你總可以按Enter鍵結束程序。
import java.io.*;
import java.net.*;
public class Both
{
原文轉自:http://www.anti-gravitydesign.com