java如何計算程序運行時間 Java如何控制進(jìn)程執(zhí)行時間?
Java如何控制進(jìn)程執(zhí)行時間?任何語言都不能達(dá)到控制進(jìn)程時間的目的!但是可以控制在規(guī)定的范圍內(nèi)!通過對系統(tǒng)性能的優(yōu)化,對操作系統(tǒng)CPU的性能評價,對文件系統(tǒng)的性能評價,就有可能把進(jìn)程時間控制在一定的范
Java如何控制進(jìn)程執(zhí)行時間?
任何語言都不能達(dá)到控制進(jìn)程時間的目的!但是可以控制在規(guī)定的范圍內(nèi)!通過對系統(tǒng)性能的優(yōu)化,對操作系統(tǒng)CPU的性能評價,對文件系統(tǒng)的性能評價,就有可能把進(jìn)程時間控制在一定的范圍內(nèi)
!語言可以捕獲CPU信息,控制磁盤信息的線程數(shù),達(dá)到控制進(jìn)程所消耗時間的目的!如果CPU是單核的,關(guān)閉多線程操作可以節(jié)省時間。如果線程之間沒有調(diào)度,將節(jié)省大量時間。多核CPU使用多線程來指定任務(wù),這將大大提高CPU利用率和節(jié)省時間!此線程優(yōu)化可以確保進(jìn)程時間控制在指定范圍內(nèi)
!系統(tǒng)所在的進(jìn)程可分為兩種類型:一種是CPU密集型。如上所述,它是CPU密集型的。線程主要用于計算。因此,線程消耗的時間是在CPU計算中。為了控制時間,我們必須考慮CPU的性能!二是I/O密集型,即系統(tǒng)需要大量的輸入輸出寫操作,CPU利用率不高,大部分都是磁盤讀寫、套接字讀寫操作,Java可以采用多線程/NiO/高并發(fā)的方式來處理IO密集型任務(wù),縮短時間
!不可能完全控制時間。我們只能根據(jù)硬件進(jìn)行優(yōu)化
java怎么限制執(zhí)行時間?
未來類(Java 1.5或更高版本)。如何使用未來類?首先,創(chuàng)建一個新方法并向新方法中添加一個內(nèi)部方法(類似于內(nèi)部類)。這個方法可以看作是你想要做的限制運行時間的方法。請記住,應(yīng)該將方法名更改為call,這與可調(diào)用的主根的類型有關(guān)。代碼如下:
final executorservice Exec=Executors.newFixedThreadPool(1)
callable<string> call=new callable<string>(){
public string call()拋出異常{
//開始耗時的操作線程。睡眠(1000*15)
返回“線程執(zhí)行完成”
然后將此方法代碼調(diào)用為
try{
Future<String> Future=執(zhí)行提交(調(diào)用)
字符串對象=未來。獲取(1000 * 10, 時間單位.毫秒)//將任務(wù)處理超時設(shè)置為1秒系統(tǒng)輸出打?。ā皌ask returned successfully:”obj)}catch(異常E){系統(tǒng)輸出打?。ā碧幚硎 !啊?/p>
e.printstacktrace()]}]//關(guān)閉線程池執(zhí)行關(guān)機(jī)()
}
記住關(guān)閉線程池。