?? sendreqthread30.java
字號:
package demo.cmppdemo30;
import java.util.Date;
/**
* Title: 短信網關
* Description: 提供通過中國移動短信協議CMPP收發短信的能力。
* Copyright: 版權所有:華為技術有限公司/Copyright (c) 2001 HUAWEI TECHNOLOGIES CO. LTD.
* Company: 華為技術有限公司
* @author
* @version 1.0
*/
public class SendReqThread30 extends Thread {
/** 該線程存活標志,kill()方法將該標志置為false。*/
private boolean alive = true;
/** 該類的所有子類對象均創建到這個線程組中。*/
public static final ThreadGroup tg = new ThreadGroup("Req-thread");
/** Demo的對象*/
private Demo30 myDemo = null;
/**線程執行的任務的運行長度,單位是毫秒*/
private long timeLong=0;
private int sleepInterval = 0;
private boolean IsSleep = false;
/**
* 構造函數,提供一個線程名參數。構造方法只創建線程,并不啟動。
* @param name 線程的名字,為線程起個好名字對調試和日志記錄很有幫助。
* @param demo 使用的Demo的對象,所有的線程只使用一個demo
*/
public SendReqThread30(String name,Demo30 demo,int timelong,int sleepinterval)
{
super(tg,name);
setDaemon(true); //設置成精靈線程(程序在只剩下精靈線程運行時將自動結束)
myDemo = demo;
timeLong = timelong*60*1000;
if(sleepInterval!=0)
{
sleepInterval = sleepinterval*1000;
IsSleep = true;
}
}
/**
* 線程主體,循環運行task()方法,直到調用了kill()方法。
*/
public final void run()
{
//生成線程開始執行的時間
long beginTime = new Date().getTime();
while (alive)
{
try
{
myDemo.Task();
if(IsSleep)
{
sleep(sleepInterval);
}
//判斷是否超出線程任務執行的時間長度
if(new Date().getTime() - beginTime >= timeLong)
{
//Exit Thread;
break;
}
}
catch (Exception ex)
{
ex.printStackTrace();
break;
}
catch (Throwable t)
{
t.printStackTrace();
break;
}
}
}
/**殺死該線程*/
public void Kill()
{
alive = false;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -