-
1 # 程式設計師術與道
-
2 # 木凡空
建立執行緒的方式:
1.繼承Thread類,並複寫run方法,建立該類物件,呼叫start方法開啟執行緒。
2.實現Runnable介面,複寫run方法,建立Thread類物件,將Runnable子類物件傳遞給Thread類物件。呼叫start方法開啟執行緒。
第二種方式好,將執行緒物件和執行緒任務物件分離開。降低了耦合性,利於維護
3.建立FutureTask物件,建立Callable子類物件,複寫call(相當於run)方法,將其傳遞給FutureTask物件(相當於一個Runnable)。
-
3 # 大資料資深專家
在java中建立程序有兩種形式:
1.使用Runtime的exec(String cmdarray[])方法建立程序
程式碼如下:
String [] cmd={"cmd","/c","start dir"};
Runtime rt = Runtime.getRuntime();
Process proc=rt.exec(cmd)
2.使用ProcessBuilder的start()方法建立程序
程式碼如下:
ProcessBuilder pb=new ProcessBuilder("cmd","/C","start","netstat");
Process ps=pb.start();
除以上列出的命令外,還可以透過程序調起計算機、文字編輯器等。
調起計算器程式碼為:Runtime.getRuntime.exec("calc");
調起文字編輯器為:Runtime.getRuntime.exec("notepad");
-
4 # 小小鄧
在Java中,可以透過兩種方式來建立程序,總共涉及到5個主要的類。
第一種方式是透過Runtime.exec()方法來建立一個程序,第二種方法是透過ProcessBuilder的start方法來建立程序。
回覆列表
在JDK中,與程序有直接關係的類為Java.lang.Process,它是一個抽象類。在JDK中也提供了一個實現該抽象類的ProcessImpl類,如果使用者建立了一個程序,那麼肯定會伴隨著一個新的ProcessImpl例項。同時和程序建立恰當相關的還有還有ProcessBuilder。
下面介紹幾種建立程序的方法。
ProcessBuilder.start()方法
Processclass是一個抽象類,在它裡面主要有幾個抽象方法,如下:
ProcessBuilder是一個最終類,它有兩個構造器,構造器中傳遞的是需要建立的程序的命令引數
第一個構造器是將命令引數放進List當中傳進去第二構造器基於不定長弦的形式傳進去。ProcessBuilder.start方法來建立一個本地的程序。如果希望在新建立的程序中使用當前的目錄和環境變數,則不需要任何配置,直接將命令列和引數設定為ProcessBuilder中,然後呼叫start方法,就獲得進步的引用。
也可以先配置環境變數和工作目錄,然後建立程序。
可以預先配置ProcessBuilder的屬性是透過ProcessBuilder建立程序的最大優點。而且可以在後面的使用中轉換需要去更改程式碼中pb變數的屬性。如果後續程式碼修改了其屬性,那麼會影響到修改後用start方法建立的程序,對修改之前建立的程序例項沒有影響。
2.Runtime.exec()方法
可以發現,實際上透過Runtime類的執行建立程序的話,最終還是透過ProcessBuilder類的start方法來建立的。