氟塑料離心泵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  

          將注釋部分替換,無限循環(huán)被停止,以顯示出特定時刻的輸出,即可看到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 你爸是李剛 閱讀(1332) 評論(0)  編輯  收藏


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


          網(wǎng)站導航:
           
          <2012年11月>
          28293031123
          45678910
          11121314151617
          18192021222324
          2526272829301
          2345678

          導航

          統(tǒng)計

          常用鏈接

          留言簿

          隨筆檔案

          文章檔案

          技術網(wǎng)站

          行業(yè)網(wǎng)站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          站長網(wǎng) 氟塑料離心泵 注塑機 液晶廣告機
          主站蜘蛛池模板: 镇远县| 四子王旗| 西城区| 连江县| 文水县| 芜湖市| 当涂县| 民丰县| 阳高县| 陕西省| 龙山县| 于都县| 海原县| 龙海市| 普宁市| 临高县| 巨野县| 荆门市| 眉山市| 威远县| 上思县| 日喀则市| 嘉峪关市| 金沙县| 砚山县| 佛冈县| 砀山县| 伊通| 永靖县| 德保县| 侯马市| 习水县| 夏津县| 敦煌市| 垦利县| 遂溪县| 应用必备| 临清市| 山东省| 信宜市| 太白县|