氟塑料离心泵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 你爸是李刚 阅读(1316) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航:
 
<2012年11月>
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678

导航

统计

常用链接

留言簿

随笔档案

文章档案

技术网站

行业网站

搜索

最新评论

阅读排行榜

评论排行榜

站长网 氟塑料离心泵 注塑机 液晶广告机