第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Timer 任務(wù)中的 Run 方法執(zhí)行了兩次

Timer 任務(wù)中的 Run 方法執(zhí)行了兩次

慕桂英546537 2023-05-24 16:18:17
我創(chuàng)建了一個(gè)每 20 秒運(yùn)行一次的計(jì)時(shí)器。計(jì)時(shí)器任務(wù)需要超過(guò)一分鐘才能完成任務(wù)。定時(shí)器任務(wù)中的 run 方法在定時(shí)器任務(wù)完成前 20 秒后執(zhí)行兩次。class A {    static Timer timer;     TimerTask timertask = new TimerTask({        public void run(){            if(check for some data in the database before inserting )            // Insert records into database         }    }    public test(){        A.timer.scheduleAtFixedRate(imertask,0, 20*1000);     }}將相同數(shù)據(jù)的兩條記錄插入數(shù)據(jù)庫(kù),時(shí)間相差 14 秒。我希望數(shù)據(jù)庫(kù)中只有一條記錄 非常感謝對(duì)此的任何幫助。
查看完整描述

3 回答

?
慕田峪4524236

TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊

按照意圖,如果第一次執(zhí)行花費(fèi)的時(shí)間超過(guò) 20 秒,則第二次執(zhí)行將在之后立即開始。如果第一次執(zhí)行超過(guò) 40 秒,第三次執(zhí)行將在第二次執(zhí)行后立即開始。依此類推,直到您在 N 秒后趕上大約 N/20 次執(zhí)行。

在固定速率執(zhí)行中,每次執(zhí)行都是相對(duì)于初始執(zhí)行的調(diào)度執(zhí)行時(shí)間進(jìn)行調(diào)度的。如果執(zhí)行因任何原因(例如垃圾回收或其他后臺(tái)活動(dòng))而延遲,則將快速連續(xù)執(zhí)行兩次或更多次以“趕上進(jìn)度”。從長(zhǎng)遠(yuǎn)來(lái)看,執(zhí)行頻率將恰好是指定周期的倒數(shù)(假設(shè) Object.wait(long) 底層的系統(tǒng)時(shí)鐘是準(zhǔn)確的)。

如果您兩次插入相同的數(shù)據(jù),那么問(wèn)題似乎在于您決定是否已經(jīng)插入該數(shù)據(jù),而不是執(zhí)行之間的間隔。

如果任務(wù)運(yùn)行了大約一分鐘,這是否表明存在錯(cuò)誤,或者需要多長(zhǎng)時(shí)間(例如連接到遠(yuǎn)程數(shù)據(jù)庫(kù))?


查看完整回答
反對(duì) 回復(fù) 2023-05-24
?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

我不明白為什么 Timer 任務(wù)同時(shí)運(yùn)行。我已經(jīng)使用 Thread 編寫了相同的邏輯和調(diào)度,現(xiàn)在一切正常。



查看完整回答
反對(duì) 回復(fù) 2023-05-24
?
慕蓋茨4494581

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊

這很好用


class A {


    static Timer timer;


    TimerTask timerTask = new TimerTask() {

        @Override

        public void run() {

            System.out.println("Task is running");

        }

    };


    public void test() {

        timer = new Timer();

        timer.scheduleAtFixedRate(timerTask, 0, 5 * 1000);


    }


        public static void main(String[] args) {

        A a = new A();

        a.test();

    }


}



查看完整回答
反對(duì) 回復(fù) 2023-05-24
  • 3 回答
  • 0 關(guān)注
  • 292 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)