欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

java定時30天的代碼的簡單介紹

java中怎么實現(xiàn)定時功能

這個是我在網上找的不知道是不是你要的:

鎮(zhèn)寧網站建設公司創(chuàng)新互聯(lián),鎮(zhèn)寧網站設計制作,有大型網站制作公司豐富經驗。已為鎮(zhèn)寧上千多家提供企業(yè)網站建設服務。企業(yè)網站搭建\成都外貿網站建設公司要多少錢,請找那個售后服務好的鎮(zhèn)寧做網站的公司定做!

java定時任務Timer 關于定時任務,似乎跟時間操作的聯(lián)系并不是很大,但是前面既然提到了定時任務,索性在這里一起解決了。設置定時任務很簡單,用Timer類就搞定了。一、延時執(zhí)行首先,我們定義一個類,給它取個名字叫TimeTask,我們的定時任務,就在這個類的main函數(shù)里執(zhí)行。代碼如下:

package test;

import java.util.Timer;

public class TimeTaskTest {

public static void main(String[] args){ Timer timer = new Timer();

timer.schedule(new Task(), 60 * 1000);

}

}

解釋一下上面的代碼。上面的代碼實現(xiàn)了這樣一個功能,當TimeTask程序啟動以后,過一分鐘后執(zhí)行某項任務。很簡單吧:先new一個Timer對象,然后調用它的schedule方法,這個方法有四個重載的方法,這里我們用其中一個,

public void schedule(TimerTask task,long delay)

首先,第一個參數(shù)第一個參數(shù)就是我們要執(zhí)行的任務。這是一個TimerTask對象,確切點說是一個實現(xiàn)TimerTask的類的對象,因為TimerTask是個抽象類。上面的代碼里 面,Task就是我們自己定義的實現(xiàn)了TimerTask的類,因為是在同一個包里面,所以沒有顯性的import進來。Task類的代碼如下

package test;

import java.util.TimerTask;

public class Task extends TimerTask { public void run()

{

System.out.println("定時任務執(zhí)行");

}

}

我們的Task必須實現(xiàn)TimerTask的方法run,要執(zhí)行的任務就在這個run方法里面,這里,我們只讓它往控制臺打一行字。第二個參數(shù)第二個參數(shù)是一個long型的值。這是延遲的時間,就是從程序開始以后,再過多少時間來執(zhí)行定時任務。這個long型的值是毫秒數(shù),所以前面我們的程序里面,過一分鐘后執(zhí)行用的參數(shù)值就是 60 * 1000。二、循環(huán)執(zhí)行設置定時任務的時候,往往我們需要重復的執(zhí)行這樣任務,每隔一段時間執(zhí)行一次,而上面的方法是只執(zhí)行一次的,這樣就用到了schedule方法的是另一個重載函數(shù)public void schedule(TimerTask task,long delay,long period)

前兩個參數(shù)就不用說什么了,最后一個參數(shù)就是間隔的時間,又是個long型的毫秒數(shù)(看來java里涉及到時間的,跟這個long是脫不了干系了),比如我們希望上面的任務從第一次執(zhí)行后,每個一分鐘執(zhí)行一次,第三個參數(shù)值賦60 * 1000就ok了。三、指定執(zhí)行時間既然號稱是定時任務,我們肯定希望由我們來指定任務指定的時間,顯然上面的方法就不中用了,因為我們不知道程序什么時間開始運行,就沒辦法確定需要延時多少。沒關系,schedule四個重載的方法還沒用完呢。用下面這個就OK了:

public void schedule(TimerTask task,Date time)

比如,我們希望定時任務2006年7月2日0時0分執(zhí)行,只要給第二個參數(shù)傳一個時間設置為2006年7月2日0時0分的Date對象就可以了。有一種情況是,可能我們的程序啟動的時候,已經是2006年7月3日了,這樣的話,程序一啟動,定時任務就開始執(zhí)行了。schedule最后一個重載的方法是public void schedule(TimerTask task,Date firstTime,long period)

沒必要說什么了吧:)四、j2ee中的定時任務在實際的項目中,往往定時任務需要對web工程中的資源進行操作,這樣一來,用上面的單個程序的方式可能就有點力不從心了,因為很多web工程的資源它操作不到。解決的辦法是,使用Servlet,把執(zhí)行定時任務的那些代碼放到Servlet的init()函數(shù)里就可以了,這個easy,就沒有必要再寫示例代碼了吧

求java的計時器代碼,應該比較簡單的,來看看吧。

package?test;

import?java.util.*;

import?java.awt.*;

import?java.awt.event.*;

import?java.applet.*;

public?class?Test5?extends?Applet?{

private?final?Panel?pan?=?new?Panel();

private?final?Label?time?=?new?Label();

private?final?Button?btnGo?=?new?Button("開始");

private?final?Button?btnPouse?=?new?Button("暫停");

private?final?Button?btnReset?=?new?Button("復位");

private?final?StopwatchThread?swThread?=?new?StopwatchThread();

private?class?btnGoListener?implements?ActionListener?{

public?void?actionPerformed(ActionEvent?e)?{

???

swThread.go();

btnGo.setEnabled(false);

}

}

private?class?btnPouseListener?implements?ActionListener?{

public?void?actionPerformed(ActionEvent?e)?{

???if(btnGo.isEnabled()){

???return?;

???}

?if?(btnPouse.getLabel().equals("繼續(xù)"))?{

swThread.go();

btnPouse.setLabel("暫停");

}?else?if?(btnPouse.getLabel().equals("暫停"))?{

swThread.noGo();

btnPouse.setLabel("繼續(xù)");

}

}

}

private?class?btnResetListener?implements?ActionListener?{

public?void?actionPerformed(ActionEvent?e)?{

swThread.reset();

btnGo.setEnabled(true);

btnGo.setLabel("開始");

btnPouse.setLabel("暫停");

}

}

private?class?StopwatchThread?extends?Thread?{

private?boolean?going?=?false;

private?long?prevElapsed?=?0;

private?Date?startDate?=?new?Date();

private?long?elapsedTime()?{

return?prevElapsed?+

(going???new?Date().getTime()?-?startDate.getTime()?:?0);

}

private?String?msToString(long?time)?{

???System.out.println(time+"??"+((0*60+2)*1000+999));

if(((99*60+59)*1000+983)=time((99*60+59)*1000+999)=time){//((0*60+2)*1000+983)=time((0*60+2)*1000+999)=time

if?(time?%?1000??990)

time?+=?2;

swThread.noGo();

}

String?ms,?sec,?min;

if?(time?%?10?=?5)

time?+=?5;

ms?=?Long.toString(time?%?1000);

while?(ms.length()??3)

ms?=?"0"?+?ms;

ms?=?ms.substring(0,?ms.length()?-?1);

time?/=?1000;

sec?=?Long.toString(time?%?60);

if?(sec.length()?==?1)?sec?=?"0"?+?sec;

time?/=?60;

min?=?Long.toString(time);

return?min?+?":"?+?sec?+?"."?+?ms;

}

public?void?go()?{

startDate?=?new?Date();

going?=?true;

}

public?void?noGo()?{

prevElapsed?=?elapsedTime();

going?=?false;

}

public?void?reset()?{

going?=?false;

prevElapsed?=?0;

}

public?void?run()?{

while?(true)?{

time.setText(msToString(elapsedTime()));

yield();

}

}

}

public?void?init()?{

setLayout(new?GridLayout(2,2));

setBackground(Color.lightGray);

setForeground(Color.black);

pan.setLayout(new?GridLayout(3,2));

pan.add(new?Label("計時:"));

time.setForeground(Color.blue);

pan.add(time);

pan.add(btnGo);

pan.add(btnPouse);

pan.add(btnReset);

pan.add(new?Label());

add(pan);

btnGo.addActionListener(new?btnGoListener());

btnReset.addActionListener(new?btnResetListener());

btnPouse.addActionListener(new?btnPouseListener());

swThread.setDaemon(true);

swThread.start();

}

public?static?void?main(String[]?args)?{

Test5?applet?=?new?Test5();

Frame?aFrame?=?new?Frame("計時器");

aFrame.addWindowListener(new?WindowAdapter()?{

public?void?windowClosing(WindowEvent?e)?{

System.exit(0);

}

});

aFrame.add(applet,?BorderLayout.CENTER);

aFrame.setSize(400,?200);

applet.init();

applet.start();

aFrame.setVisible(true);

}

}

可以改變有注釋的那個if語句里面的值來判斷什么時候停止

java定時任務怎么實現(xiàn)

/**

* 普通thread

* 這是最常見的,創(chuàng)建一個thread,然后讓它在while循環(huán)里一直運行著,

* 通過sleep方法來達到定時任務的效果。這樣可以快速簡單的實現(xiàn),代碼如下:

* @author GT

*

*/

public class Task1 {

public static void main(String[] args) {

// run in a second

final long timeInterval = 1000;

Runnable runnable = new Runnable() {

public void run() {

while (true) {

// ------- code for task to run

System.out.println("Hello !!");

// ------- ends here

try {

Thread.sleep(timeInterval);

} catch (InterruptedException e) {

e.printStackTrace();

}

}

}

};

Thread thread = new Thread(runnable);

thread.start();

}

}

[java] view plain copy

import java.util.Timer;

import java.util.TimerTask;

/**

*

* 于第一種方式相比,優(yōu)勢 1當啟動和去取消任務時可以控制 2第一次執(zhí)行任務時可以指定你想要的delay時間

*

* 在實現(xiàn)時,Timer類可以調度任務,TimerTask則是通過在run()方法里實現(xiàn)具體任務。 Timer實例可以調度多任務,它是線程安全的。

* 當Timer的構造器被調用時,它創(chuàng)建了一個線程,這個線程可以用來調度任務。 下面是代碼:

*

* @author GT

*

*/

public class Task2 {

public static void main(String[] args) {

TimerTask task = new TimerTask() {

@Override

public void run() {

// task to run goes here

System.out.println("Hello !!!");

}

};

Timer timer = new Timer();

long delay = 0;

long intevalPeriod = 1 * 1000;

// schedules the task to be run in an interval

timer.scheduleAtFixedRate(task, delay, intevalPeriod);

} // end of main

}

[java] view plain copy

import java.util.concurrent.Executors;

import java.util.concurrent.ScheduledExecutorService;

import java.util.concurrent.TimeUnit;

/**

*

*

* ScheduledExecutorService是從Java SE5的java.util.concurrent里,做為并發(fā)工具類被引進的,這是最理想的定時任務實現(xiàn)方式。

* 相比于上兩個方法,它有以下好處:

* 1相比于Timer的單線程,它是通過線程池的方式來執(zhí)行任務的

* 2可以很靈活的去設定第一次執(zhí)行任務delay時間

* 3提供了良好的約定,以便設定執(zhí)行的時間間隔

*

* 下面是實現(xiàn)代碼,我們通過ScheduledExecutorService#scheduleAtFixedRate展示這個例子,通過代碼里參數(shù)的控制,首次執(zhí)行加了delay時間。

*

*

* @author GT

*

*/

public class Task3 {

public static void main(String[] args) {

Runnable runnable = new Runnable() {

public void run() {

// task to run goes here

System.out.println("Hello !!");

}

};

ScheduledExecutorService service = Executors

.newSingleThreadScheduledExecutor();

// 第二個參數(shù)為首次執(zhí)行的延時時間,第三個參數(shù)為定時執(zhí)行的間隔時間

service.scheduleAtFixedRate(runnable, 10, 1, TimeUnit.SECONDS);

}

}

在Java中如何設置一個定時任務的代碼應該怎么寫?

指定定時任務的代碼如下:

public void schedule(TimerTask task,Date time)

比如,我們希望定時任務2006年7月2日0時0分執(zhí)行,只要給第二個參數(shù)傳一個時間設置為2006年7月2日0時0分的Date對象就可以了.

有一種情況是,可能我們的程序啟動的時候,已經是2006年7月3日了,這樣的話,程序一啟動,定時任務就開始執(zhí)行了.

schedule最后一個重載的方法是

public void schedule(TimerTask task,Date firstTime,long period)

既然號稱是定時任務,我們肯定希望由我們來指定任務指定的時間,顯然上面的方法就不中用了,因為我們不知道程序什么時間開始運行,就沒辦法確定需要延時多少.沒關系,schedule四個重載的方法還沒用完呢.用下面這個就OK了。

標題名稱:java定時30天的代碼的簡單介紹
網頁URL:http://chinadenli.net/article0/hihoio.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站策劃品牌網站建設搜索引擎優(yōu)化營銷型網站建設微信小程序外貿建站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網站建設