導航:首頁 > 編程語言 > java運行時間線程

java運行時間線程

發布時間:2022-05-13 22:26:03

A. java 多個線程運行時間問題

我理解,准確的說你這個都不是多線程執行,即使是多線程執行,也有一定的時間差,cpu還要輪片。

符合你要求的寫法,你可以試試,實現了Runnable下面的run();在run里休眠

@Override
publicvoidrun(){
try{
Thread.sleep(5000);
System.out.println("done");
}catch(InterruptedExceptione){
e.printStackTrace();
}
}

而你後面的m1.mySleep()和m2.mySleep()相當於在main的主線程中阻塞執行,目測需要10秒多才能看到兩個done!!

B. java怎麼設定線程運行時間

在線程開始的時候,用一個變數記錄當前系統時間,線程執行完後再取一次系統時間,兩個時間的差就是線程執行時間了。

C. 用java編程:創建三個線程,分別顯示各自的開始運行時間及總運行時間

public class AThread extends Thread {
private String name;

public AThread(String name) {
this.name = name;
}
public void run() {
long startTime = System.currentMillis();
System.out.println(name + " start at : " + startTime);
Thread.sleep(1000);
System.out.println(name + " totoal cost : " + (System.currentMillis() - startTime));
}
}

public class Test {
public static void main(String[] args) {
for (int i = 0; i < 3; i++) {
AThread t = new AThread("thread " + i);
t.start();
}
}
}

D. java 如何計算線程執行時間

線程是獨立的,啟動了,就不受控,你可以考慮下面的方式,雖然不優雅,不過能解決你的問題,而跟線程相關的,也只能這樣來設計。
(如果你覺得線程的不太優雅,你可以採用觀察者的模式來加在一起,那代碼就優雅多了,簡單的問題,不建議搞得這么優雅,你覺得呢?)

啟動線程之前,獲取系統時間,做為開始時間
線程結束後,在線程的代碼的最後再獲取一次系統時間,這個時間減去剛剛上面的那個時間,就是運算時間

海楓科技、海楓論壇

E. java線程的生命周期有哪些

生命周期的五種狀態
新建(new Thread)
當創建Thread類的一個實例(對象)時,此線程進入新建狀態(未被啟動)。
例如:Thread t1=new Thread();
就緒(runnable)
線程已經被啟動,正在等待被分配給CPU時間片,也就是說此時線程正在就緒隊列中排隊等候得到CPU資源。例如:t1.start();
運行(running)
線程獲得CPU資源正在執行任務(run()方法),此時除非此線程自動放棄CPU資源或者有優先順序更高的線程進入,線程將一直運行到結束。
死亡(dead)
當線程執行完畢或被其它線程殺死,線程就進入死亡狀態,這時線程不可能再進入就緒狀態等待執行。
自然終止:正常運行run()方法後終止
異常終止:調用stop()方法讓一個線程終止運行
堵塞(blocked)
由於某種原因導致正在運行的線程讓出CPU並暫停自己的執行,即進入堵塞狀態。
正在睡眠:用sleep(long t) 方法可使線程進入睡眠方式。一個睡眠著的線程在指定的時間過去可進入就緒狀態。
正在等待:調用wait()方法。(調用motify()方法回到就緒狀態)
被另一個線程所阻塞:調用suspend()方法。(調用resume()方法恢復)

F. java 中如何使線程運行一定時間後停止

java中使線程運行一定時間後停止,可以設置一個變數,當滿足條件則退出線程:

importstaticjava.lang.Thread.currentThread;
importjava.util.concurrent.TimeUnit;
publicclassThreadPauseDemo{
publicstaticvoidmain(Stringargs[])throwsInterruptedException{
Gamegame=newGame();
Threadt1=newThread(game,"T1");
t1.start();
//現在停止Game線程
System.out.println(currentThread().getName()+"isstoppinggamethread");
game.stop();
//查看Game線程停止的狀態
TimeUnit.MILLISECONDS.sleep(200);
System.out.println(currentThread().getName()+"isfinishednow");
}
}

classGameimplementsRunnable{
=false;
publicvoidrun(){
while(!isStopped){
System.out.println("Gamethreadisrunning......");
System.out.println("Gamethreadisnowgoingtopause");
try{
Thread.sleep(200);
}catch(InterruptedExceptione){
e.printStackTrace();
}
System.out.println("Gamethreadisnowresumed......");
}
System.out.println("Gamethreadisstopped......");
}
publicvoidstop(){
isStopped=true;
}
}

程序輸出如下:

Game thread is running......
main is stopping game thread
Game thread is now going to pause
Game thread is now resumed......
Game thread is stopped......
main is finished now

G. Java用線程式控制制方法執行的時間

wait()方法是java.lang.Object類韋線程提供的用於實現線程間通信的同步控制方法。wait()方法使當前線程主動釋放互斥鎖,並進入該互斥鎖的等待隊列。(也就是說,它使當前線程暫停執行,等待其他線程執行notify()方法或者notifyall()方法後再繼續執行本線程。)本方法用於釋放一個項目的線程,喚醒另一個可能在等待的線程。有兩種調用格式:
1.wait()等待通信線程喚醒後再繼續執行本線程。
2.wait(long millis)等待通信線程喚醒或者最多等待millis毫秒後,再繼續執行本線程。

我知道的就這么多了哈,希望對你能有一點幫助哦~~

H. Java中,線程是什麼意思,多線程又是什麼

在計算機中當一個程序運行的時候就會創建至少一個進程,例如當我們運行QQ的時候,系統就會創建進程來處理我們平時的一些操作,當我們打開任務管理器的時候,在進程的列表裡面就可以找到QQ.exe的運行程序;

在計算機中處理進程之外還有另一個概念就是線程,線程是存在於進程當中,一個進程可以包含多個線程;當我們的計算機有多核處理器的時候,使用多線程可以加快程序的運算速率;如果一個進程中只有一個線程,當程序遇到一個比較耗時的計算的時候,由於程序是單線程的,那麼程序只能等待這個運算結束的時候再繼續運行,這樣會大大的降低程序的效率;當時用多個線程的時候,在某個線程遇到比較耗時的運算的時候,該線程可以繼續自己的運算,但是其他的線程也可以同步進行,這樣當耗時的計算結束之後,其他線程也將自己所需要的東西執行完畢,這樣就會很大的提高程序執行效率;

在程序運行中對於文件的保存相對於處理器的運算速度來說是很慢的,當我們程序中接收到一個保存文件的信息之後,我們可以創建一個保存文件的線程,在主線程中我們可以繼續進行我們的其他運算,這樣當文件保存好之後,我們的其他運算也會完成,互不影響;

在Java中我們可以創建一個自己的類繼承於Thread類,並且重寫run() 方法,當線程啟動之後,run()方法裡面的操作都在線程中進行處理,而不會影響主線程的信息;

當我們創建好一個自定義線程類之後,我們可以創建這個自定義線程的對象,進行線程的啟動;線程須調用start();方法進行啟動,這樣run()方法裡面的內容才會在線程中運行;如果我們不去調用start()方法,那我們只是創建了一個普通的類,即使我們手動調用run()方法,run()方法裡面的內容也不會在線程中運行;

在Java中線程主要有初始狀態,運行狀態,阻塞狀態,終止狀態等;當我們新創建一個線程對象的時候,此時線程的狀態為初始狀態;當我們調用start()之後,此時的線程才被激活成為運行狀態,之後run()方法裡面的信息才會在子線程中運行;我們可以在不同的階段調用不同的方法將線程設置為不同的狀態;比如有時候我們的操作需要等待其他線程中運算結束之後才可以繼續進行,這時候我們就可以將線程設置為等待狀態,當需要的資源滿足條件之後,可以繼續運行當前的線程;

以上的內容就是關於Java中線程是什麼,更多關於Java方面的問題可以看下這個視頻教程:網頁鏈接,希望我的回答能幫到你。

I. JAVA中多線程執行的時間或是順序的問題

關於JAVA中多線程的問題:可以說是時間問題導致了程序運行後出現多種狀況的原因..(現在只談在一個CPU下運行JAVA程序的效果.)因為當START一個新的子線程後,MAIN方法中的程序執行到這時CPU開始切換,但是這種切換是隨即的,跟時間有關,比如你第一次執行可能CPU在MAIN方法中執行到12345停了,然後執行子線程的11 12 13 14 15.。。一段時間後再切換回主線程。所以你看到程序的執行結果不一樣。就是因為CPU切換線程(這時候應該叫進程吧)的時間不一樣.。這雖然有順序切換,但也不是你想的那樣切回主1次再切回子1次這樣來回切..而是0.001秒切一次可以這樣比喻.

閱讀全文

與java運行時間線程相關的資料

熱點內容
手機號碼如何加密 瀏覽:424
沈陽程序員培訓學校 瀏覽:538
一般伺服器如何配置 瀏覽:895
圖片怎樣加密發郵件 瀏覽:619
萬虹電腦文件夾密碼忘記了怎麼辦 瀏覽:631
rc108單片機 瀏覽:867
戰雷如何改變伺服器 瀏覽:674
mactelnet命令 瀏覽:51
壓縮袋壓縮了拿出來 瀏覽:401
安卓手機相機怎麼設置許可權 瀏覽:121
美女程序員轉行做主播 瀏覽:671
辦理解壓房產 瀏覽:575
道路工程概論pdf 瀏覽:388
超棒數學速演算法大全 瀏覽:937
小米易語言登錄源碼 瀏覽:31
磚牆內加密鋼筋 瀏覽:992
鄉關何處pdf 瀏覽:84
小豬領贊小程序源碼 瀏覽:336
python曲線如何原路返回 瀏覽:431
pdf快速看圖破解版 瀏覽:294