大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java添加延遲執(zhí)行的方法

Java添加延遲執(zhí)行的方法

更新時(shí)間:2022-12-09 11:21:12 來源:動(dòng)力節(jié)點(diǎn) 瀏覽4265次

與任何其他編程語言一樣,Java 支持延遲。要理解延遲的概念,我們需要了解Java線程,了解線程后,您肯定會(huì)了解 main Thread,即調(diào)用 main 函數(shù)的線程。所以現(xiàn)在如果我們想使用延遲,唯一可能的方法就是暫停線程的執(zhí)行。Java 的 API 為這個(gè)功能提供了方法。

最基本的方法:Thread 類的 Sleep() 方法

顧名思義,sleep 方法是一種在 Java 中執(zhí)行延遲的快速但骯臟的方法。此方法存在于 Thread 類中。它只是指示當(dāng)前線程休眠一段特定時(shí)間。

句法:

Thread.Sleep(<Time In Miliseconds>)

sleep 方法以毫秒為單位接受輸入。所以,如果你想暫停執(zhí)行 5 秒,你需要在 sleep 方法中傳遞 5000。在睡眠方法的情況下,該過程顯示為正在進(jìn)行的工作,而操作設(shè)置為暫停。現(xiàn)在,在這種情況下,如果處理器需要處理其他一些高優(yōu)先級(jí)進(jìn)程,則 sleep 方法的執(zhí)行可能會(huì)被中斷。因此,為此目的,Java 的 API 實(shí)現(xiàn)了 sleep 方法以拋出 InterruptedException。

下面是Thread類的sleep方法的實(shí)現(xiàn)。

public static void sleep(long ms) throws InterruptedException
{
sleep(ms, 0);
}

因此,每當(dāng)我們調(diào)用 sleep 方法時(shí),我們都需要轉(zhuǎn)發(fā)異常或使用 try & catch 塊處理異常,如下面的代碼所示:

try {
Thread.sleep(timeInSeconds * 1000);
} catch (InterruptedException ie) {
Thread.currentThread().interrupt();
}

以單位時(shí)間休眠:Time Unit 的 sleep() 方法

執(zhí)行或調(diào)用睡眠方法的另一種方法是使用 TimeUnit 的睡眠方法。在內(nèi)部它也使用 Thread 的 sleep 方法,但它的不同之處在于它接受 Unit Time 并且可以在參數(shù)中傳遞相同的方法,如下所示:

句法:

TimeUnit.SECONDS.sleep(<timeInSeconds>);

例子:

// TimeUnit's sleep() method
import java.util.concurrent.*;
class TimeUnitMain{
public static void main(String args[]) {
long time = 0;
//TimeUnit Object to call the sleep method
TimeUnit time = TimeUnit.SECONDS;
try {
// Calling the sleep method on the object of TimeUnit Class
time.sleep(time);
} catch (InterruptedException e) {
System.out.println("Interrupted Exception Caught"+ e);
}
}
}

另一種延遲方法:wait() 方法

我們可以使用 wait 方法在多線程環(huán)境和同步塊內(nèi)暫停執(zhí)行。

像 wait() 一樣,我們有一個(gè)方法 notify() 和 notifyAll(),這些方法在 wait() 方法之后被調(diào)用。我們需要確保我們只從同步塊調(diào)用 wait() 方法。

讓我們看一個(gè)簡單的例子,在下面的例子中,我們使用線程計(jì)算前 100 個(gè)數(shù)字的總和,并在不同的線程中打印總和。

所以,下面是我們的 ThreadOne 類:

package delay.example;
public class ThreadOne extends Thread{
    int sum;
    @Override
    public void run(){
        synchronized(this){
            for(int i=0; i<100 ; i++){
             sum += i;
            }
            notify();
        }
    }
}

下面是創(chuàng)建 ThreadOne 對(duì)象并計(jì)算總和的主類:

package delay.example;
public class ThreadMain {
public static void main(String[] args){
ThreadOne t1 = new ThreadOne();
t1.start();
System.out.println("Value of the ThreadOne's num is:  " + t1.sum);
}
}

上述代碼的輸出如下所示:

ThreadOne 的 num 值為:0

或者

ThreadOne 的 num 值是:10或其他值,具體取決于將變量 sum 發(fā)送到控制臺(tái)進(jìn)行打印時(shí)的值。

我們使用相同的 ThreadOne 類:

package delay.example; 
public class ThreadOne extends Thread{
    int sum;
    @Override
    public void run(){
        synchronized(this){
            for(int i=0; i<100 ; i++){
             sum += i;
            }
            notify();
        }
    }
}

但是修改 ThreadMain 類如下:

package delay.example;
public class ThreadMain {
public static void main(String[] args){
ThreadOne t1 = new ThreadOne();
t1.start();
synchronized(t1){
try{
System.out.println("Waiting For the Thread t1 to complete its execution: ");
t1.wait();
}catch(InterruptedException e){
e.printStackTrace();
}
System.out.println("Value of the ThreadOne's num is:  " + t1.sum);
}
}
}

輸出:

等待線程 t1 完成執(zhí)行:

ThreadOne 的 num 值為:4950

這是由于 wait() 暫停了 main() 線程,直到 t1 線程執(zhí)行它的方法并調(diào)用了 notify() 方法。如果大家想了解更多相關(guān)知識(shí),不妨來關(guān)注一下本站的Java視頻教程,里面的課程內(nèi)容細(xì)致全面,通俗易懂,很適合沒有基礎(chǔ)的小伙伴學(xué)習(xí),希望對(duì)大家能夠有所幫助。

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 国产亚洲精品美女久久久 | 奇米在线 | 欧美日韩视频精品一区二区 | 亚洲国产日韩欧美高清片a 亚洲国产日韩欧美一区二区三区 | 国内精品视频九九九九 | 一级毛片高清免费播放 | 国产一级黄色毛片 | 久久久久久久久久福利 | 欧美精品亚洲精品日韩专 | 日本一级毛一级毛片短视频 | 成年人精品视频 | 中文字幕在线精品不卡 | 亚洲成人看片 | 国产亚洲精品成人一区看片 | 真正全免费视频a毛片 | 奇米影视网 | 亚洲精品免费在线观看 | 亚洲欧美日韩中文高清一 | 青草久| 91热久久免费频精品99欧美 | 精品一区二区三区免费爱 | 99热久久国产精品这里小说 | 91久久青草精品38国产 | 青青草a| 91伦理视频 | 丝袜亚洲精品中文字幕一区 | 欧美一级刺激毛片 | 泰国一级毛片aaa下面毛多 | 九九久久精品国产 | 日日摸夜夜摸狠狠摸日日碰夜夜做 | 黄色伊人网 | 欧美午夜视频一区二区三区 | 欧美亚洲综合另类成人 | 天天干夜夜操 | 精品亚洲欧美高清不卡高清 | 欧美高清亚洲欧美一区h | 国产第一页福利 | 国产免费一区二区三区免费视频 | 99热久久这里只精品国产 | 日日噜噜爽爽狠狠视频 | 亚洲国内自拍愉拍20页 |