日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

java實(shí)現(xiàn)定時(shí)器的四種方式

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

掃碼添加小助手

加入工程師交流群

java實(shí)現(xiàn)定時(shí)器的四種方式

1. 使用Thread.sleep()方法

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

示例代碼:

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

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

優(yōu)點(diǎn):實(shí)現(xiàn)簡單,易于理解。

缺點(diǎn):無法在定時(shí)器運(yùn)行過程中修改定時(shí)器的時(shí)間或停止定時(shí)器,不適合實(shí)現(xiàn)復(fù)雜的定時(shí)器邏輯。

2. 使用Timer類

Timer類是Java提供的一個(gè)簡單的定時(shí)器工具,可以輕松實(shí)現(xiàn)定時(shí)器的開啟、停止、暫停等操作。

示例代碼:

```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("定時(shí)器已經(jīng)運(yùn)行了 " + (++count) + " 秒");
}
}, 1000, 1000);
Thread.sleep(5000);
timer.cancel();
}
}
```

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

優(yōu)點(diǎn):使用方便,適合實(shí)現(xiàn)一些簡單的定時(shí)任務(wù)。

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

3. 使用ScheduledExecutorService類

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

示例代碼:

```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); // 開啟一個(gè)線程池
int count = 0;
executor.scheduleAtFixedRate(() -> System.out.println("定時(shí)器已經(jīng)運(yùn)行了 " + (++count) + " 秒"), 1, 1, TimeUnit.SECONDS);
Thread.sleep(5000);
executor.shutdownNow();
}
}
```

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

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

缺點(diǎn):算法略有復(fù)雜,需要一定的背景知識(shí)。

4. 使用Quartz類

Quartz是Java中一個(gè)強(qiáng)大的定時(shí)器框架,支持各種復(fù)雜的計(jì)劃和時(shí)間設(shè)定,適用于大型項(xiàng)目中的復(fù)雜定時(shí)任務(wù)。

示例代碼:

```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(); // 獲取調(diào)度器
scheduler.start();
Job myJob = new Job() { // 自定義任務(wù)
public void execute(JobExecutionContext arg0) throws JobExecutionException {
System.out.println("調(diào)度器運(yùn)行中...");
}
};
scheduler.scheduleJob(
newJob(myJob.getClass()) // 設(shè)置任務(wù)
.withIdentity("myJob", "group1")
.build(),
newTrigger()
.withIdentity("myJobTrigger", "group1")
.withSchedule(
simpleSchedule() // 不重復(fù)執(zhí)行
.withIntervalInSeconds(1)
.withRepeatCount(0)
)
.build()
);
Thread.sleep(5000);
scheduler.shutdown();
}
}
```

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

優(yōu)點(diǎn):可以實(shí)現(xiàn)各種復(fù)雜的計(jì)劃和時(shí)間設(shè)定,適用于大型項(xiàng)目中的復(fù)雜定時(shí)任務(wù)。

缺點(diǎn):相對于其他方案來說,Quartz的學(xué)習(xí)和上手成本比較高。

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

    關(guān)注

    20

    文章

    3012

    瀏覽量

    116873
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3375

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    瑞薩RA系列FSP庫開發(fā)實(shí)戰(zhàn)指南之AGT低功耗定時(shí)器簡介和結(jié)構(gòu)框圖

    瑞薩RA MCU有兩定時(shí)器外設(shè):GPT(General PWM Timer)定時(shí)器和AGT(Asynchronous General Purpose Timer)定時(shí)器
    的頭像 發(fā)表于 04-30 16:47 ?3561次閱讀
    瑞薩RA系列FSP庫開發(fā)實(shí)戰(zhàn)指南之AGT低功耗<b class='flag-5'>定時(shí)器</b>簡介和結(jié)構(gòu)框圖

    深入剖析NE555定時(shí)器:特性、參數(shù)與應(yīng)用

    ,我們就來深入了解一下NE555定時(shí)器的相關(guān)特性、參數(shù)以及典型應(yīng)用。 文件下載: NE555M/TR.pdf 產(chǎn)品簡介 NE555定時(shí)器內(nèi)部由閾值比較、觸發(fā)比較、RS觸發(fā)
    的頭像 發(fā)表于 04-28 15:40 ?100次閱讀

    變頻四種制動(dòng)方式

    解決的核心問題。目前主流的變頻制動(dòng)方式主要包括能耗制動(dòng)、回饋制動(dòng)、直流制動(dòng)和電容制動(dòng)四種,每種方式各具特點(diǎn),適用于不同的工況場景。
    的頭像 發(fā)表于 03-25 16:31 ?280次閱讀

    LM555QML定時(shí)器:功能特性、應(yīng)用及設(shè)計(jì)要點(diǎn)

    了解一下它。 文件下載: lm555qml.pdf 一、LM555QML簡介 LM555QML是一款可直接替代SE555/NE555的定時(shí)器,能實(shí)現(xiàn)從微秒到數(shù)小時(shí)的定時(shí),支持單穩(wěn)態(tài)和無穩(wěn)態(tài)兩
    的頭像 發(fā)表于 02-10 15:40 ?343次閱讀

    是德示波器DSOX1202A與電腦的四種連接方式及操作步驟詳解

    是德科技(Keysight)DSOX1202A示波器作為高精度電子測量設(shè)備,廣泛應(yīng)用于電子工程、通信測試與自動(dòng)化調(diào)試場景。為實(shí)現(xiàn)數(shù)據(jù)實(shí)時(shí)采集、波形分析與遠(yuǎn)程控制,用戶需通過USB、LAN、GPIB或串口將示波器與電腦互聯(lián)。本文將結(jié)合官方指南與實(shí)操經(jīng)驗(yàn),系統(tǒng)介紹四種連接
    的頭像 發(fā)表于 01-13 17:48 ?1901次閱讀
    是德示波器DSOX1202A與電腦的<b class='flag-5'>四種</b>連接<b class='flag-5'>方式</b>及操作步驟詳解

    LAT1173高精度定時(shí)器的同步功能應(yīng)用筆記

    STM32G474 所含的高精度定時(shí)器(HRTIMER)其實(shí)包含了多個(gè)定時(shí)器,多個(gè)定時(shí)器之間可以單獨(dú)工作,也可以進(jìn)行同步,且高精度定時(shí)器還能與片上的其他
    發(fā)表于 01-11 17:32 ?0次下載

    LAT1183+高精度定時(shí)器中 single-shot 計(jì)數(shù)模式不工作應(yīng)用筆記

    客戶使用 STM32G474 的高精度定時(shí)器,基于 CubeMX 進(jìn)行外設(shè)配置與代碼生成,將某個(gè)子定時(shí)器的計(jì)數(shù)方式設(shè)置為 retriggerable single shot 方式,發(fā)現(xiàn)
    發(fā)表于 01-11 17:28 ?0次下載

    DS100DF410:低功耗10GbE通道重定時(shí)器的深度解析

    DS100DF410:低功耗10GbE通道重定時(shí)器的深度解析 在高速數(shù)據(jù)傳輸?shù)念I(lǐng)域中,重定時(shí)器扮演著至關(guān)重要的角色,它能夠有效改善信號(hào)質(zhì)量,確保數(shù)據(jù)的可靠傳輸。今天,我們就來深入探討一款優(yōu)秀
    的頭像 發(fā)表于 12-24 09:15 ?608次閱讀

    深入剖析DS125RT410低功耗多速率通道重定時(shí)器

    鏈路中的數(shù)據(jù)傳輸問題提供了有效的解決方案。今天,我就來和大家詳細(xì)探討一下這款芯片。 文件下載: ds125rt410.pdf 芯片概述及特性亮點(diǎn) 基礎(chǔ)信息與設(shè)計(jì)目標(biāo) DS125RT410是一款集成了信號(hào)調(diào)理功能的通道重定時(shí)器,旨在實(shí)現(xiàn)
    的頭像 發(fā)表于 12-23 13:55 ?774次閱讀

    DS125DF410低功耗多速率通道重定時(shí)器:設(shè)計(jì)與應(yīng)用全解析

    DS125DF410低功耗多速率通道重定時(shí)器:設(shè)計(jì)與應(yīng)用全解析 在高速數(shù)據(jù)傳輸?shù)念I(lǐng)域中,重定時(shí)器扮演著至關(guān)重要的角色,它能夠有效改善信號(hào)質(zhì)量,確保數(shù)據(jù)在長距離和高損耗鏈路中的可靠傳輸。今天,我們
    的頭像 發(fā)表于 12-23 11:35 ?687次閱讀

    實(shí)現(xiàn)一個(gè)嵌入式的軟件定時(shí)器

    ,一般可分為兩:數(shù)組結(jié)構(gòu)和鏈表結(jié)構(gòu)。什么意思呢?這是(多個(gè))軟件定時(shí)器在內(nèi)存中的存儲(chǔ)方式,可以用數(shù)組來存,也可以用鏈表來存。 兩者的優(yōu)劣之分就是兩種數(shù)據(jù)結(jié)構(gòu)的特性之分:數(shù)組方式
    發(fā)表于 12-10 08:29

    CW32L0開發(fā)板學(xué)習(xí)記錄,高級(jí)定時(shí)器ATIM學(xué)習(xí)

    通道,可以測量輸入信號(hào)的脈沖寬度(輸入捕獲)或者產(chǎn)生輸出波形(輸出比較和 PWM)。 低功耗定時(shí)器(LPTIM): 內(nèi)部集成1個(gè) 16 位低功耗定時(shí)器(LPTIM),可以以很低的功耗實(shí)現(xiàn)定時(shí)
    發(fā)表于 12-01 07:35

    PWM、定時(shí)器、SysTick 區(qū)別及應(yīng)用場景

    。下面我們來梳理清楚。一、基本概念定時(shí)器(Timer)MCU內(nèi)最基礎(chǔ)的計(jì)數(shù)外設(shè),通過計(jì)數(shù)時(shí)鐘周期實(shí)現(xiàn)定時(shí)、計(jì)數(shù)功能。多數(shù)MCU內(nèi)部有多個(gè)通用定時(shí)器,可配置為
    的頭像 發(fā)表于 11-17 10:53 ?720次閱讀
    PWM、<b class='flag-5'>定時(shí)器</b>、SysTick 區(qū)別及應(yīng)用場景

    SysTick系統(tǒng)滴答定時(shí)器簡介

    SysTick—系統(tǒng)定時(shí)器是屬于CM33內(nèi)核中的一個(gè)外設(shè),內(nèi)嵌在NVIC中。系統(tǒng)定時(shí)器是一個(gè)24bit的向下遞減的計(jì)數(shù),計(jì)數(shù)每計(jì)數(shù)一次的時(shí)間為 1/SYSCLK,一般我們設(shè)置系統(tǒng)時(shí)
    的頭像 發(fā)表于 09-23 09:50 ?1847次閱讀
    SysTick系統(tǒng)滴答<b class='flag-5'>定時(shí)器</b>簡介

    大彩講堂:VisualHMI-LUA教程-定時(shí)器的使用指南

    定時(shí)器的使用
    的頭像 發(fā)表于 08-31 16:59 ?1396次閱讀
    大彩講堂:VisualHMI-LUA教程-<b class='flag-5'>定時(shí)器</b>的使用指南
    辽阳县| 固阳县| 江山市| 彭阳县| 上高县| 屯昌县| 吉木乃县| 岳普湖县| 聂拉木县| 西宁市| 泸定县| 平江县| 平定县| 武川县| 昭觉县| 金门县| 泗洪县| 达日县| 郧西县| 河津市| 海宁市| 贡嘎县| 阿勒泰市| 沐川县| 若羌县| 泊头市| 英山县| 蕲春县| 方城县| 大城县| 沛县| 三门县| 乡宁县| 建平县| 梅河口市| 邯郸市| 郓城县| 佛坪县| 右玉县| 全椒县| 石首市|