氟塑料離心泵www.buybeng.com

          jquery教程http://www.software8.co/wzjs/jquery/

          Java中的ThreadUtil

          ThreadUtil使API更加具體化,因而為線程編程新手提供了一定的方便性,從而簡化了API。其源碼如下:

          1. package mybole;  
          2.   
          3. public class ThreadUtil {  
          4.     public static ThreadGroup getSystemThreadGroup()  
          5.     {  
          6.         ThreadGroup systemThreadGroup;  
          7.         ThreadGroup parentThreadGroup;  
          8.         systemThreadGroup = Thread.currentThread().getThreadGroup();  
          9.         while((parentThreadGroup = systemThreadGroup.getParent()) != null)  
          10.             systemThreadGroup = parentThreadGroup;  
          11.         return systemThreadGroup;  
          12.     }  
          13.       
          14.     public static void printSystemThreadGroup()  
          15.     {  
          16.         System.out.println(getSystemThreadGroup());  
          17.     }  
          18.       
          19.     public static Thread getThread()  
          20.     {  
          21.         return new Thread(new Job());  
          22.     }  
          23.       
          24.     public static Thread[] getThreads(int n)  
          25.     {  
          26.         Thread[] ta = new Thread[n];  
          27.         for(int i=0; i<ta.length; i++)  
          28.         {  
          29.             ta[i] = getThread();  
          30.             ta[i].start();  
          31.         }  
          32.         return ta;  
          33.     }  
          34.       
          35.     public static ThreadGroup[] getThreadGroup()  
          36.     {  
          37.         ThreadGroup stg = getSystemThreadGroup();  
          38.         int nog = stg.activeGroupCount()+1;  
          39.         ThreadGroup[] tga = new ThreadGroup[nog];  
          40.         stg.enumerate(tga);  
          41.         tga[tga.length - 1] = stg;  
          42.         return tga;  
          43.     }  
          44.       
          45.     public static void print(Object[] o)  
          46.     {  
          47.         for(Object x:o)  
          48.             System.out.println(x);  
          49.     }  
          50.       
          51.     public static void print(Thread[] o)  
          52.     {  
          53.         for(Thread x:o)  
          54.             System.out.println(x+" isAlive="+x.isAlive()+" name="+x.getName()+" isDaemon="+x.isDaemon());  
          55.     }  
          56.       
          57.     public static Thread[] getThreads()  
          58.     {  
          59.         ThreadGroup stg = getSystemThreadGroup();  
          60.         Thread[] ta = new Thread[stg.activeCount()];  
          61.         stg.enumerate(ta, true);  
          62.         return ta;  
          63.     }  
          64.       
          65.     public static void setPriority(Thread[] ta, int p)  
          66.     {  
          67.         for(Thread x:ta)  
          68.             x.setPriority(p);  
          69.     }  
          70.       
          71.     public static void setName(Thread[] ta, String n)  
          72.     {  
          73.         for(Thread x:ta)  
          74.             x.setName(n);  
          75.     }  
          76.       
          77.     public static void main(String[] args)  
          78.     {  
          79.         System.out.println("Hello Thread!!");  
          80.         Thread[] ta = getThreads();  
          81. <span style="white-space:pre">      </span>//***************注釋*****************  
          82. <span style="white-space:pre">      </span>//Thread[] ta = getThreads(3);  
          83.         print(ta);  
          84.         setPriority(ta, 10);  
          85.         setName(ta, "blueln");  
          86.         print(ta);  
          87.     }  
          88. }  

          1. package mybole;  
          2.   
          3. public class Job implements Runnable  
          4. {  
          5.     static int totalNumberOfJobs = 0;  
          6.     int jobNumber = 0;  
          7.     Job()  
          8.     {  
          9.         jobNumber = totalNumberOfJobs;  
          10.         totalNumberOfJobs++;  
          11.     }  
          12.       
          13.     public void run()  
          14.     {  
          15.         while(true)  
          16.         {  
          17.             System.out.println("t#="+jobNumber+"\t" + new java.util.Date());  
          18.             try  
          19.             {  
          20.                 Thread.sleep((int)(Math.random()*10000));  
          21.             }  
          22.             catch(InterruptedException e)  
          23.             {  
          24.                 e.getMessage();  
          25.             }  
          26.         }  
          27.     }  
          28. }  

          輸出結果:
          1. Hello Thread!!  
          2. Thread[Reference Handler,10,system] isAlive=true name=Reference Handler isDaemon=true  
          3. Thread[Finalizer,8,system] isAlive=true name=Finalizer isDaemon=true  
          4. Thread[Signal Dispatcher,9,system] isAlive=true name=Signal Dispatcher isDaemon=true  
          5. Thread[Attach Listener,5,system] isAlive=true name=Attach Listener isDaemon=true  
          6. Thread[main,5,main] isAlive=true name=main isDaemon=false  
          7. Thread[blueln,10,system] isAlive=true name=blueln isDaemon=true  
          8. Thread[blueln,10,system] isAlive=true name=blueln isDaemon=true  
          9. Thread[blueln,10,system] isAlive=true name=blueln isDaemon=true  
          10. Thread[blueln,10,system] isAlive=true name=blueln isDaemon=true  
          11. Thread[blueln,10,main] isAlive=true name=blueln isDaemon=false  

          將注釋部分替換,無限循環被停止,以顯示出特定時刻的輸出,即可看到Job類打印的結果

          1. Hello Thread!!  
          2. Thread[Thread-0,5,main] isAlive=true name=Thread-0 isDaemon=false  
          3. Thread[Thread-1,5,main] isAlive=true name=Thread-1 isDaemon=false  
          4. Thread[Thread-2,5,main] isAlive=true name=Thread-2 isDaemon=false  
          5. Thread[blueln,10,main] isAlive=true name=blueln isDaemon=false  
          6. Thread[blueln,10,main] isAlive=true name=blueln isDaemon=false  
          7. Thread[blueln,10,main] isAlive=true name=blueln isDaemon=false  
          8. t#=0    Sun Nov 20 16:05:10 CST 2011  
          9. t#=1    Sun Nov 20 16:05:10 CST 2011  
          10. t#=2    Sun Nov 20 16:05:10 CST 2011  
          11. t#=2    Sun Nov 20 16:05:18 CST 2011  
          12. t#=1    Sun Nov 20 16:05:18 CST 2011  
          13. t#=0    Sun Nov 20 16:05:19 CST 2011  
          14. t#=2    Sun Nov 20 16:05:23 CST 2011  
          15. t#=1    Sun Nov 20 16:05:23 CST 2011  
          16. t#=0    Sun Nov 20 16:05:24 CST 2011  
          17. t#=0    Sun Nov 20 16:05:27 CST 2011  
          18. t#=0    Sun Nov 20 16:05:28 CST 2011  
          19. t#=1    Sun Nov 20 16:05:30 CST 2011  
          20. t#=2    Sun Nov 20 16:05:32 CST 2011  
          21. t#=2    Sun Nov 20 16:05:33 CST 2011  
          22. t#=1    Sun Nov 20 16:05:37 CST 2011  
          23. t#=0    Sun Nov 20 16:05:37 CST 2011  

          posted on 2012-11-16 11:46 你爸是李剛 閱讀(1331) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          <2012年11月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          技術網站

          行業網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          站長網 氟塑料離心泵 注塑機 液晶廣告機
          主站蜘蛛池模板: 辉南县| 鸡泽县| 广丰县| 冀州市| 如东县| 盐池县| 岳阳县| 永丰县| 舞阳县| 兴和县| 万载县| 长顺县| 错那县| 平安县| 玛纳斯县| 讷河市| 静乐县| 天津市| 宜君县| 旺苍县| 大冶市| 烟台市| 黄浦区| 霍城县| 沈丘县| 温州市| 望都县| 江川县| 辉县市| 固原市| 桦甸市| 壤塘县| 尚志市| 重庆市| 郎溪县| 北海市| 墨竹工卡县| 赤壁市| 清镇市| 云南省| 福泉市|