2012-04-22 45 views
-2

以下是我的文本文件test1.txt。來自多線程程序的隨機調用百分比

AutoRefreshStoreCategories 70% 1 16 2060 10053 10106 10111 
CrossPromoEditItemRule  20% 1 10107 10108 10109 
CrossPromoManageRules  10% 1 10107 10108 10109                         

我想寫一個多線程的程序,可以逐行讀取文件中的行,並通過在空白分裂在一條線上打印每個數字(我做了這部分)。在上面的文件中,我在第一行的命令名稱示例旁邊指定了一些百分比,它在AutoRefreshStoreCategories旁邊有70%。所以我想把70%的隨機電話轉到第一行。第二行有20%的同樣的方式,所以20%的隨機電話去第二行。最後是第三行,10%的隨機電話打到第三行。 對於每一行,基本上我想打印他們每行中的數字。

所以我在下面寫了一個多線程程序,但該程序只是在每行中打印數字,它沒有考慮隨機調用的百分比。我不確定我可以使用什麼邏輯,以便通過使用多線程程序,我可以指定很多百分比的隨機調用轉到第一行,第二行或第三行。 任何幫助將不勝感激。

public class ExcelRead { 

    private static Integer threadSize = 4; 

    public static void main(String[] args) { 

     for (int i = 1; i <= threadSize; i++) { 
      new Thread(new ThreadTask(i)).start(); 
     } 
    } 
} 


class ThreadTask implements Runnable { 
    private int id; 

    public ThreadTask(int id) { 
     this.id = id; 
    } 

    public synchronized void run() { 
     BufferedReader br = null; 

     try { 
      String sCurrentLine; 

      br = new BufferedReader(new FileReader("C:\\testing\\test1.txt")); 

      while ((sCurrentLine = br.readLine()) != null) { 
       String[] s = sCurrentLine.split("\\s+"); 
       for (String split : s) { 
       if(split.matches("\\d*")) 
       System.out.println(split); 
      } 
     } 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       if (br != null)br.close(); 
      } catch (IOException ex) { 
       ex.printStackTrace(); 
      } 
     } 

    } 
} 
+0

這功課嗎?或者更普遍的是「學習練習」? – 2012-04-22 00:51:20

+0

順便說一句,調用run()不會啓動一個新的線程。你必須調用start()而不是 – 2012-04-22 00:52:01

+0

我知道調用run不會啓動一個新線程,我只是按順序運行它。 – AKIWEB 2012-04-22 00:53:31

回答

0

我不知道我可以通過使用多線程的程序,我可以指定任意調用這麼多的比例去第一線,或二線或三線有什麼邏輯,這樣。任何幫助將不勝感激。

因爲,這似乎是功課(或自學習)我建議你想想你會怎麼做,如果你是冒充的計算機。一部分是閱讀Random類的javadoc,並找出如何映射隨機值int以適應您的百分比範圍。


作爲一個腳註,我很困惑你想通過使它成爲一個多線程程序來達到目的。也許你可以解釋。在我看來,(現在)只是把一個簡單的任務變得更加複雜......而沒有性能優勢。

+0

其實我已經提出這個問題很簡單,因爲在這個基礎上我必須做一個複雜的任務。所以這就是我將我的問題縮小到非常簡單的情況的原因,因爲我需要在threadSize上調用隨機調用的百分比。任何代碼片段將不勝感激。 – AKIWEB 2012-04-22 01:03:11