- /**
- * Title: 加入線程
- * Description:
- * @date : 2006-3-3
- * @author : zhanglei
- * @version : 1.0
- */
- package server;
- import java.io.*;
- import java.util.*;
- import java.sql.*;
- /**
- *RecvThread 交換信息接收XML文件服務線程
- *@param1 線程啓動時間
- *@param2 監控文件路徑
- */
- class RecvThread
- implements Runnable {
- private DomXML DomXML = MainServer.DomXML;
- static int sumFile = 0; //處理文件合計數
- private int threadTime = 0; //線程延時時間
- private findfile FindFile = null;
- private int execFlag = 0; //執行SQL語句結果標識
- private File doFile = null; //備份移動後進行處理的文件
- private File errorFile = null; //異常XML文件移動
- private String filename = "";
- private String pathname = "";
- private StringBuffer log = new StringBuffer();
- private JdbcWork RkJw = new JdbcWork();
- // private int xmlListFlag = 0; //接收XML的list文件處理標識 0 未處理 1 處理成功 -1 處理失敗
- private String threadNo = ""; //線程號
- private ListXML listXml = null;
- public RecvThread(String ThreadNo) {
- threadNo = ThreadNo;
- DomXML.GetBeginItem("receive");
- this.threadTime = GetThreadtime(DomXML.GetItemAttribute(threadNo, "threadtime").trim());
- this.pathname = DomXML.GetItemAttribute(threadNo, "path").trim();
- FindFile = new findfile(pathname);
- listXml = new ListXML();
- RkJw.ConnectDB();
- }
- //執行線程體
- public void run() {
- System.out.println("run");
- }
- //獲得線程時間
- public static int GetThreadtime(String timeStr) {
- int threadtime = 1000;
- if (MyFunction.IsNumber(timeStr)) {
- threadtime = Integer.parseInt(timeStr);
- }
- return threadtime;
- }
- public static void main(String args[]) {
- //讀入檢驗XML配置到內存
- try {
- DomXML configXml = new DomXML("config.xml");
- System.out.println("XML配置文件讀取成功!");
- }
- catch (Throwable t) {
- System.out.println("檢驗XML配置文件讀取錯誤!");
- }
- Thread RecvThread = new Thread(new RecvThread("no1"));
- RecvThread.start();
- /* //建立Jdbc數據庫連接
- JdbcWork JW = new JdbcWork();
- if(JW.ConnectDB() == null) {
- System.out.println("數據庫連接失敗!");
- System.exit(1);
- }
- */
- //戶籍變動處理,執行rk_change_people()
- // Thread TestThread = new Thread(new TestThread(1, ""));
- // TestThread.start();
- }
- }
- /*
- /**
- *ExecSqlThread 戶籍變動處理,執行sql語句線程
- *@param1 線程啓動時間
- *@param2 執行的SQL語句
- */
- class ExecSqlThread
- implements Runnable {
- private DomXML DomXML = MainServer.DomXML;
- private String threadNo = null;
- private int threadTime = 0; //線程延時時間
- private String sqlStr = null;
- private JdbcWork EsJw = new JdbcWork();
- public ExecSqlThread(String ThreadNo) {
- threadNo = ThreadNo;
- DomXML.GetBeginItem("execproc");
- this.threadTime = RecvThread.GetThreadtime(DomXML.GetItemAttribute(threadNo, "threadtime").trim());
- this.sqlStr = DomXML.GetItemAttribute(threadNo, "procname").trim();
- EsJw.ConnectDB();
- }
- public void run() {
- while (true) {
- try {
- EsJw.PstmtExecSql(sqlStr);
- EsJw.PstmtCommit();
- Thread.sleep(threadTime);
- }
- catch (Exception e) {
- SaveLog.SetInfo(sqlStr + "進程執行異常:" + e, 2);
- }
- }
- }
- }
- /**
- *TabHkThread 戶籍變動處理,執行sql語句線程
- *@param1 線程啓動時間
- *@param2 執行的SQL語句
- */
- class GetXmlThread
- implements Runnable {
- private DomXML DomXML = MainServer.DomXML;
- private String threadNo = null;
- private int threadTime; //線程延時時間
- private String xmlno;
- public GetXmlThread(String ThreadNo) {
- threadNo = ThreadNo;
- DomXML.GetBeginItem("GetXmlFile");
- this.threadTime = RecvThread.GetThreadtime(DomXML.GetItemAttribute(threadNo, "threadtime").trim());
- this.xmlno = ThreadNo; //DomXML.GetItemAttribute(threadNo, "xmltype").trim();
- }
- public void run() {
- while (true) {
- try {
- GetXmlFile getXmlFile = new GetXmlFile(xmlno);
- getXmlFile.Start();
- Thread.sleep(threadTime);
- }
- catch (Exception e) {
- SaveLog.SetInfo(xmlno + "生成XML文件異常:" + e, 2);
- }
- }
- }
- }
- /**
- *MyAddThread 自增加線程
- *@ThreadNo 線程啓動序號
- */
- class MyAddThread
- implements Runnable {
- private DomXML DomXML = MainServer.DomXML;
- private String threadNo = null;
- private int threadTime; //線程延時時間
- private String xmltype;
- public MyAddThread(String ThreadNo) {
- threadNo = ThreadNo;
- DomXML.GetBeginItem("MyAddThread");
- this.threadTime = RecvThread.GetThreadtime(DomXML.GetItemAttribute(threadNo, "threadtime").trim());
- }
- public void run() {
- while (true) {
- try {
- new MyThreadClass();
- Thread.sleep(threadTime);
- }
- catch (Exception e) {
- SaveLog.SetInfo(xmltype + "MyAddThread線程異常:" + e, 2);
- }
- }
- }
- }
- //調試檢測運行進程數量
- class Probe
- extends Thread {
- public Probe() {}
- public void run() {
- while (true) {
- Thread[] x = new Thread[100];
- Thread.enumerate(x);
- for (int i = 0; i < 100; i++) {
- Thread t = x[i];
- if (t == null) {
- break;
- }
- else {
- System.out.println(t.getName() + "/t" + t.getPriority()
- + "/t" + t.isAlive() + "/t" + t.isDaemon());
- }
- }
- }
- }
- }
addthread.java
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.