一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

java實現定時器的四種方式

工程師鄧生 ? 來源:未知 ? 作者:劉芹 ? 2023-10-18 17:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

java實現定時器的四種方式

1. 使用Thread.sleep()方法

Thread.sleep()方法可以讓當前線程暫停執(zhí)行一段時間,我們可以利用它來實現簡單的定時器。

示例代碼:

```java
public class TimerDemo1 {
public static void main(String[] args) throws InterruptedException {
int count = 0;
while (true) {
System.out.println("定時器已經運行了 " + (++count) + " 秒");
Thread.sleep(1000); // 暫停1000毫秒,即1秒
}
}
}
```

該示例中我們使用了一個無限循環(huán),每次循環(huán)輸出當前運行的時間,并暫停1秒鐘后再繼續(xù)。

優(yōu)點:實現簡單,易于理解。

缺點:無法在定時器運行過程中修改定時器的時間或停止定時器,不適合實現復雜的定時器邏輯。

2. 使用Timer類

Timer類是Java提供的一個簡單的定時器工具,可以輕松實現定時器的開啟、停止、暫停等操作。

示例代碼:

```java
import java.util.Timer;
import java.util.TimerTask;

public class TimerDemo2 {
public static void main(String[] args) throws InterruptedException {
Timer timer = new Timer();
int count = 0;
timer.schedule(new TimerTask() {
public void run() {
System.out.println("定時器已經運行了 " + (++count) + " 秒");
}
}, 1000, 1000);
Thread.sleep(5000);
timer.cancel();
}
}
```

該示例中我們使用了Timer類實現定時器的功能,使用timer.schedule()方法開啟定時器,可以設定初始延遲時間、定時器間隔時間,并通過timer.cancel()方法停止定時器。

優(yōu)點:使用方便,適合實現一些簡單的定時任務。

缺點:無法在定時器運行過程中修改定時器的時間或停止定時器,不支持并發(fā)操作。

3. 使用ScheduledExecutorService類

ScheduledExecutorService類是Java提供的用于定時執(zhí)行任務的工具類,可以設定定時器的初始延遲時間、間隔時間、并發(fā)量等參數,支持更加靈活的定時器條件設定和停止。

示例代碼:

```java
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;

public class TimerDemo3 {
public static void main(String[] args) throws InterruptedException {
ScheduledExecutorService executor = Executors.newScheduledThreadPool(1); // 開啟一個線程池
int count = 0;
executor.scheduleAtFixedRate(() -> System.out.println("定時器已經運行了 " + (++count) + " 秒"), 1, 1, TimeUnit.SECONDS);
Thread.sleep(5000);
executor.shutdownNow();
}
}
```

該示例中我們使用了ScheduledExecutorService類實現定時器的功能,在executor.scheduleAtFixedRate()方法中設定了初始延遲時間、定時器間隔時間,并通過executor.shutdownNow()方法停止定時器。

優(yōu)點:靈活且方便,支持并發(fā)操作,適合實現一些復雜的定時任務。

缺點:算法略有復雜,需要一定的背景知識。

4. 使用Quartz類

Quartz是Java中一個強大的定時器框架,支持各種復雜的計劃和時間設定,適用于大型項目中的復雜定時任務。

示例代碼:

```java
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;

import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;
import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
import static org.quartz.CronScheduleBuilder.cronSchedule;

public class TimerDemo4 {
public static void main(String[] args) throws SchedulerException, InterruptedException {
Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler(); // 獲取調度器
scheduler.start();
Job myJob = new Job() { // 自定義任務
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("調度器運行中...");
}
};
scheduler.scheduleJob(
newJob(myJob.getClass()) // 設置任務
.withIdentity("myJob", "group1")
.build(),
newTrigger()
.withIdentity("myJobTrigger", "group1")
.withSchedule(
simpleSchedule() // 不重復執(zhí)行
.withIntervalInSeconds(1)
.withRepeatCount(0)
)
.build()
);
Thread.sleep(5000);
scheduler.shutdown();
}
}
```

該示例中我們使用了Quartz框架實現定時器,創(chuàng)建一個自定義的任務,并調度它的執(zhí)行。我們可以通過修改Trigger實現更加復雜的時間調度設定。

優(yōu)點:可以實現各種復雜的計劃和時間設定,適用于大型項目中的復雜定時任務。

缺點:相對于其他方案來說,Quartz的學習和上手成本比較高。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • JAVA
    +關注

    關注

    20

    文章

    2987

    瀏覽量

    108184
  • 定時器
    +關注

    關注

    23

    文章

    3297

    瀏覽量

    117573
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    MCU定時器/計數

    RISC-V核低功耗MCU通過靈活的定時器架構、低功耗模式適配及硬件級中斷優(yōu)化,在工業(yè)控制、智能家居等場景中實現高精度計時與能耗控制的協(xié)同設計,滿足復雜任務調度與實時響應的雙重需求?。 一、?硬件
    的頭像 發(fā)表于 04-27 13:54 ?232次閱讀

    芯片封裝中的四種鍵合方式:技術演進與產業(yè)應用

    自動鍵合和混合鍵合四種主流技術,它們在工藝流程、技術特點和應用場景上各具優(yōu)勢。本文將深入剖析這四種鍵合方式的技術原理、發(fā)展現狀及未來趨勢,為產業(yè)界提供技術參考。
    的頭像 發(fā)表于 04-11 14:02 ?952次閱讀
    芯片封裝中的<b class='flag-5'>四種</b>鍵合<b class='flag-5'>方式</b>:技術演進與產業(yè)應用

    私藏技術大公開!四種常見供電方案

    在現代生活中,供電問題直接關系到我們的生活質量與工作效率。以下是四種超實用的供電方案,無論是在家庭生活還是工作場景中,都能為你提供穩(wěn)定可靠的電力支持。 常見的物聯網應用場景下,供電方式四種
    的頭像 發(fā)表于 12-31 14:28 ?2316次閱讀
    私藏技術大公開!<b class='flag-5'>四種</b>常見供電方案

    被問爆的四種供電方式,來啦~

    4G模組的外部電源供電設計十分重要,對系統(tǒng)穩(wěn)定、射頻性能都有直接影響。 常見的物聯網應用場景下,供電方式四種: LDO供電方式 DCDC供電方式 鋰電池供電以及充電
    的頭像 發(fā)表于 12-30 15:40 ?863次閱讀
    被問爆的<b class='flag-5'>四種</b>供電<b class='flag-5'>方式</b>,來啦~

    定時器自動控制開關怎么設置

    定時器自動控制開關是一常見的自動化設備,廣泛應用于家庭、工業(yè)、農業(yè)等多個領域。通過定時器,用戶可以預設時間,讓設備在特定時間自動開啟或關閉,從而
    的頭像 發(fā)表于 09-19 16:19 ?3822次閱讀

    如何在MSP430?上實現內置振蕩的高精度定時器

    電子發(fā)燒友網站提供《如何在MSP430?上實現內置振蕩的高精度定時器.pdf》資料免費下載
    發(fā)表于 09-14 11:10 ?0次下載
    如何在MSP430?上<b class='flag-5'>實現</b>內置振蕩<b class='flag-5'>器</b>的高精度<b class='flag-5'>定時器</b>

    串行口的四種工作方式各有什么特點

    串行通信是計算機硬件和外設之間常用的通信方式之一。串行口(Serial Port)是實現串行通信的硬件接口。在計算機系統(tǒng)中,串行口通常用于連接鼠標、調制解調、打印機等設備。串行口有四種
    的頭像 發(fā)表于 08-22 17:37 ?3582次閱讀

    定時器的基本組成和工作模式

    定時器是計算機或電子設備中常見的一個硬件或軟件組件,其主要功能是測量和控制時間的流逝。它在各種應用中起著至關重要的作用,如操作系統(tǒng)調度、多媒體播放、網絡通信、工業(yè)自動化控制以及家電設備的定時功能等。定時器的工作原理基于時序控制,
    的頭像 發(fā)表于 08-19 18:28 ?2670次閱讀

    變流電路的換流方式有哪四種

    變流電路是一將一形式的電能轉換為另一形式的電能的電路,廣泛應用于電力電子領域。在變流電路中,換流方式實現電能轉換的關鍵技術之一。換流
    的頭像 發(fā)表于 08-14 11:08 ?4977次閱讀

    濾波電路的四種類型是什么

    濾波電路是電子電路中非常重要的一部分,它主要用于對信號進行頻率選擇,即允許特定頻率范圍內的信號通過,而阻止其他頻率的信號。濾波電路根據其特性可以分為四種基本類型:低通濾波(Low-Pass
    的頭像 發(fā)表于 08-08 16:25 ?5837次閱讀

    簡述四種基本觸發(fā)及其功能

    在數字電路設計中,觸發(fā)是一基本且重要的存儲元件,用于存儲二進制信息(即0和1)。根據功能和應用場景的不同,觸發(fā)可以分為多種類型,其中四種基本觸發(fā)
    的頭像 發(fā)表于 07-27 14:59 ?1.8w次閱讀

    熱電偶補償的四種方式有哪些

    的準確性。以下是四種常見的熱電偶補償方式: 冷端補償法 冷端補償法是一常見的熱電偶補償方法,其基本原理是在熱電偶的冷端(即測量端)加入一個與熱電偶材料相同的金屬或合金,以補償熱電偶在冷端產生的熱電勢。這種方法
    的頭像 發(fā)表于 07-23 17:06 ?4965次閱讀

    定時器的工作方式介紹

    定時器是計算機和嵌入式系統(tǒng)中常見的一硬件模塊,用于實現定時和計數功能。定時器的工作方式通常由一
    的頭像 發(fā)表于 07-12 10:29 ?1863次閱讀

    定時器相關的寄存有哪些類型

    在微控制編程中,定時器是一非常常見的功能模塊,用于實現各種定時和計數功能。定時器的工作原理是
    的頭像 發(fā)表于 07-12 10:25 ?1640次閱讀

    鴻蒙開發(fā)系統(tǒng)基礎能力:Timer定時器

    設置一個定時器,該定時器定時器到期后執(zhí)行一個函數。
    的頭像 發(fā)表于 06-28 11:33 ?1418次閱讀
    鴻蒙開發(fā)系統(tǒng)基礎能力:Timer<b class='flag-5'>定時器</b>