摘要:如果執(zhí)行任務(wù)的時(shí)間早于當(dāng)前時(shí)間,則立即執(zhí)行任務(wù)。其他任務(wù)不受影響。類中的方法作用是將任務(wù)隊(duì)列中全部的任務(wù)進(jìn)行清空。全部任務(wù)都被清除,并且進(jìn)程被銷毀。類中的方法有時(shí)并不一定會(huì)停止計(jì)劃任務(wù),而是正常執(zhí)行。
Timer類的主要作用就是設(shè)置計(jì)劃任務(wù),但封裝任務(wù)的類卻是TimerTask類,執(zhí)行計(jì)劃任務(wù)的代碼要放入TimerTask的子類中,因?yàn)門imerTask是一個(gè)抽象類。
創(chuàng)建1個(gè)Timer就是啟動(dòng)一個(gè)新的線程,那么這個(gè)新啟動(dòng)的線程并不是守護(hù)線程,一直在運(yùn)行。
如果執(zhí)行任務(wù)的時(shí)間早于當(dāng)前時(shí)間,則立即執(zhí)行task任務(wù)。
TimerTask是以隊(duì)列的方式一個(gè)一個(gè)被順序性地執(zhí)行,所以執(zhí)行的時(shí)間有可能和預(yù)期的時(shí)間不一致,因?yàn)榈娜蝿?wù)有可能消耗的時(shí)間比較長(zhǎng),則后面的任務(wù)運(yùn)行的時(shí)間也被延后。
在使用一個(gè)Timer情況下,Task是放入隊(duì)列的,得一個(gè)一個(gè)運(yùn)行。
TimerTask類中的cancel()方法的作用是將自身從任務(wù)隊(duì)列中進(jìn)行清除。其他任務(wù)不受影響。
Timer類中的cancel()方法作用是將任務(wù)隊(duì)列中全部的任務(wù)進(jìn)行清空。
全部任務(wù)都被清除,并且進(jìn)程被銷毀。
Timer類中的cancel()方法有時(shí)并不一定會(huì)停止計(jì)劃任務(wù),而是正常執(zhí)行。原因是Timer類中的cancel()方法有時(shí)并沒(méi)有搶到queue鎖,則讓TimerTask類中的任務(wù)正常執(zhí)行。
方法schedule和方法scheduleAtFixedRate都會(huì)按順序執(zhí)行,所以不要考慮非線程安全的情況,主要區(qū)別在于有沒(méi)有追趕特性。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/68204.html
摘要:定時(shí)任務(wù)間隔時(shí)間方式執(zhí)行一次定時(shí)任務(wù)線程休眠規(guī)定時(shí)間類類允許調(diào)度一個(gè)任務(wù)。引入依賴配置測(cè)試執(zhí)行一次定時(shí)任務(wù)使用注解是為定時(shí)任務(wù)而生的一個(gè)注解,查看注解的源碼表達(dá)式接收一個(gè)。 本文旨在用通俗的語(yǔ)言講述枯燥的知識(shí) 定時(shí)任務(wù)作為一種系統(tǒng)調(diào)度工具,在一些需要有定時(shí)作業(yè)的系統(tǒng)中應(yīng)用廣泛,如每逢某個(gè)時(shí)間點(diǎn)統(tǒng)計(jì)數(shù)據(jù)、在將來(lái)某個(gè)時(shí)刻執(zhí)行某些動(dòng)作...定時(shí)任務(wù)在主流開(kāi)發(fā)語(yǔ)言均提供相應(yīng)的API供開(kāi)發(fā)者調(diào)用...
摘要:本篇來(lái)看下線程池相關(guān)技術(shù)的實(shí)現(xiàn)和使用方式。時(shí)間單位這個(gè)線程池中線程處理任務(wù)的的任務(wù)隊(duì)列。上面的例子中我們向線程池中提交了一個(gè),并接受一個(gè)返回值。 本篇來(lái)看下java線程池相關(guān)技術(shù)的實(shí)現(xiàn)和使用方式。 0x01 線程的實(shí)現(xiàn) 一開(kāi)始我們想要實(shí)現(xiàn)多線程最通常的做法是: new Thread(new Runnable() { public void run() { Sys...
摘要:線程可以被稱為輕量級(jí)進(jìn)程。一個(gè)守護(hù)線程是在后臺(tái)執(zhí)行并且不會(huì)阻止終止的線程。其他的線程狀態(tài)還有,和。上下文切換是多任務(wù)操作系統(tǒng)和多線程環(huán)境的基本特征。在的線程中并沒(méi)有可供任何對(duì)象使用的鎖和同步器。 原文:Java Multi-Threading and Concurrency Interview Questions with Answers 翻譯:并發(fā)編程網(wǎng) - 鄭旭東 校對(duì):方騰飛 多...
摘要:多線程和并發(fā)問(wèn)題是技術(shù)面試中面試官比較喜歡問(wèn)的問(wèn)題之一。線程可以被稱為輕量級(jí)進(jìn)程。一個(gè)守護(hù)線程是在后臺(tái)執(zhí)行并且不會(huì)阻止終止的線程。其他的線程狀態(tài)還有,和。上下文切換是多任務(wù)操作系統(tǒng)和多線程環(huán)境的基本特征。 多線程和并發(fā)問(wèn)題是 Java 技術(shù)面試中面試官比較喜歡問(wèn)的問(wèn)題之一。在這里,從面試的角度列出了大部分重要的問(wèn)題,但是你仍然應(yīng)該牢固的掌握J(rèn)ava多線程基礎(chǔ)知識(shí)來(lái)對(duì)應(yīng)日后碰到的問(wèn)題。(...
摘要:第一次在指定時(shí)間點(diǎn)執(zhí)行任務(wù),之后每隔時(shí)間調(diào)用任務(wù)一次。定時(shí)器已啟動(dòng)每隔小時(shí)已經(jīng)添加任務(wù)調(diào)度表這個(gè)方法在應(yīng)用服務(wù)被移除,沒(méi)有能力再接受請(qǐng)求的時(shí)候被調(diào)用。 1、普通thread實(shí)現(xiàn) 這是最常見(jiàn)的,創(chuàng)建一個(gè)thread,然后讓它在while循環(huán)里一直運(yùn)行著,通過(guò)sleep方法來(lái)達(dá)到定時(shí)任務(wù)的效果。這樣可以快速簡(jiǎn)單的實(shí)現(xiàn),代碼如下: public class Task1 { public ...
閱讀 617·2023-04-25 18:37
閱讀 2780·2021-10-12 10:12
閱讀 8315·2021-09-22 15:07
閱讀 564·2019-08-30 15:55
閱讀 3174·2019-08-30 15:44
閱讀 2194·2019-08-30 15:44
閱讀 1625·2019-08-30 13:03
閱讀 1560·2019-08-30 12:55