Metode Panggilan:
/** * Jumlah klik/bulan (tahun) utas */public void tahunan klikThread () {// Dapatkan parameter string tahun = getPara ("tahun"); // Statistik Set Data X Daftar <String> xList = ArrayList baru <string> (); xlist.add ("Januari"); xlist.add ("Februari"); xlist.add ("March"); xlist.add ("April"); xlist.add ("may"); xlist.add ("June"); xlist.add ("Juli"); xlist.add ("Juli"); xlist.add ("Agustus"); xlist.add ("September"); xlist.add ("Oktober"); xlist.add ("November"); xlist.add ("Desember"); // Dataset Statistik Y Daftar <Integer> ylist = ArrayList baru <Integer> (); // Daftar Status Thread Statistik <tread> ThreadList = ArrayList baru <tread> (); // Kode Status Thread int ThreadStatusCode = 0; // Counter int count = 0; // Analisis log bulanan untuk (int m = 1; m <= 12; m ++) {// Daftar parameter tanggal mengumpulkan <string> Datelist = ArrayList baru <string> (); // date string = ""; // tentukan berapa hari int hari = calendarutil.weekformonth (integer.valueof (tahun), m); // Tanggal kombinasi untuk (int i = 1; i <= days; i ++) {if (i <= 9) {if (m <= 9) {date = tahun + "-0" + m + "-0" + i; } else {date = tahun + "-" + m + "-0" + i; }} else {if (m <= 9) {date = tahun + "-0" + m + "-" + i; } else {date = tahun + "-" + m + "-" + i; }} datelist.add (tanggal); } // Mulai utas utas utas = readlogFileThreadyyear (Datelist) baru; thread.start (); coba {// hibernate thread.sleep (1000l); } catch (InterruptedException e) {E.PrintStackTrace (); } threadList.add (thread); } // Dapatkan status utas untuk (thread t: threadList) {if (t.getState (). ToString (). Equals ("diakhiri")) {threadStatusCode += 1; }} // Tentukan apakah semua utas telah dieksekusi if (threadStatusCode == 12) {// menerima parameter // daftar <peta <string, objek >> Daftar = readLogFileThread.list.sublist (0, 12); Daftar <peta <string, objek >> daftar = readLogFileThreadByyear.list; // atur parameter untuk (int p = 0; p <list.size (); p ++) {count+= (int) list.get (p) .get ("clickcount"); if (list.get (p) .get ("bulan"). Equals ("01")) {ylist.add ((integer) list.get (p) .get ("clickcount")); } else if (list.get (p) .get ("month"). Equals ("02")) {ylist.add ((integer) list.get (p) .get ("clickcount")); } else if (list.get (p) .get ("month"). equals ("03")) {ylist.add ((integer) list.get (p) .get ("clickcount")); } else if (list.get (p) .get ("month"). equals ("04")) {ylist.add ((integer) list.get (p) .get ("clickcount")); } else if (list.get (p) .get ("month"). Equals ("05")) {ylist.add ((integer) list.get (p) .get ("clickcount")); } else if (list.get (p) .get ("month"). equals ("06")) {ylist.add ((integer) list.get (p) .get ("clickcount")); } else if (list.get (p) .get (p) .get ("month"). Equals ("07")) {ylist.add ((integer) list.get (p) .get ("clickcount")); } else if (list.get (p) .get ("month"). equals ("08")) {ylist.add ((integer) list.get (p) .get ("clickcount")); } else if (list.get (p) .get ("month"). equals ("09")) {ylist.add ((integer) list.get (p) .get ("clickcount")); } else if (list.get (p) .get ("month"). Equals ("10")) {ylist.add ((integer) list.get (p) .get ("clickcount"))); } else if (list.get (p) .get ("month"). equals ("11")) {ylist.add ((integer) list.get (p) .get ("clickcount"))); } else if (list.get (p) .get ("month"). Equals ("12")) {ylist.add ((integer) list.get (p) .get ("clickcount"))); }}} setAttr ("TotalCount", Count); setattr ("x", xlist); setattr ("y", ylist); renderjson (); }Metode Threading:
Paket com.ninemax.util.loganalysis; impor java.io.bufferedreader; impor java.io.file; impor java.io.fileinputStream; Java.io.ioException; impor Java.inputStreamReader; impor java.util.raylist; java.util.list; import java.util.map; import com.ninemax.util.loganalysis.tool.constantutil;/** * Multithreading tidak memiliki nilai pengembalian * * @author darker */class public readlogfilethreadbyyear memperluas utas {//Tanggal kencan; // Data dibagikan Daftar statis public <peta <string, objek >> list = new arraylist <peta <string, objek >> (); publik readlogfilethreadbyyear (daftar <string> klik) {this.clickDate = clickDate; } / ** * Baca klik file log * * Contoh: artikel.click.2016-05-20.txt * * @return * / public void run () {// menerima parameter peta <string, objek> peta = hashmap baru <string, objek> (); // Gunakan FileInputStream untuk membaca Informasi File FileInputStream fis = null; // Gunakan inputStreamReader untuk transcode inputStreamReader reader = null; // Gunakan BufferedReader untuk buffer bufferedReader bufreader = null; // Gunakan StringBuffer untuk menerima konten konten file StringBuffer buf = new StringBuffer (); // klik/bulan int monthClick = 0; untuk (int i = 0; i <clickDate.size (); i ++) {// Dapatkan file file clickLogFile = file baru (constantutil.loglocation, "artikel.click."+ clickDate.get (i)+ ".txt"); // Tentukan apakah ada file jika (! Clicklogfile.exists () || clicklogfile.isDirectory ()) {System.err.println (clickDate.get (i) + "File tidak ada ..."); } else {coba {// node stream fis = new fileInputStream (clicklogFile); // Konversi Stream Reader = InputStreamReader baru (FIS, "UTF-8"); // Proses Stream BuFreader = BufferedReader baru (pembaca); // Counter int count = 0; // Baca string line = ""; // Baca file while ((line = bufreader.readline ())! = Null) {count ++; // menerima data if (! Line.equals (null) &&! Line.equals ("")) {buf.applepend (line + "/n"); }} if (count == 0) {count = 0; } else {count = count - 1; } monthClick += count; } catch (Exception e) {E.PrintStackTrace (); } akhirnya {// tutup aliran coba {bufreader.close (); reader.close (); fis.close (); } catch (ioException e) {e.printstacktrace (); }}}} map.put ("bulan", clickDate.get (0) .subequence (5, 7)); if (monthClick == 0) {map.put ("clickcount", 0); } else {map.put ("clickcount", monthClick); } // peta.put ("ClickContent", buf.toString ()); list.add (peta); }} 1 Halaman 2Next Baca teks lengkapnya