Java线程池如何固定自身的大小


  本文标签:Java线程池

Java线程池在我们学习的时候有很多的问题,其实在很多的问题我们都能在源代码中找到我们想要的答案  。希望大家有所收获,首先我们来看看Java线程池大小的问题  。

在使用线程池之前,必须知道如何去创建一个线程池,在Java5中,需要了解的是java.util.concurrent.Executors类的API,这个类提供大量创建连接池的静态方法,是必须掌握的  。

固定大小的Java线程池

Java线程池代码

  1. import java.util.concurrent.Executors;   
  2. import java.util.concurrent.ExecutorService;   
  3. /**   
  4. * Java线程:线程池-   
  5. *   
  6. * @author Administrator 2009-11-4 23:30:44   
  7. */   
  8. public class Test {   
  9. public static void main(String[] args) {   
  10. //创建一个可重用固定线程数的线程池   
  11. ExecutorService pool = Executors.newFixedThreadPool(2);   
  12. //创建实现了Runnable接口对象,Thread对象当然也实现了Runnable接口   
  13. Thread t1 = new MyThread();   
  14. Thread t2 = new MyThread();   
  15. Thread t3 = new MyThread();   
  16. Thread t4 = new MyThread();   
  17. Thread t5 = new MyThread();   
  18. //将线程放入池中进行执行   
  19. pool.execute(t1);   
  20. pool.execute(t2);   
  21. pool.execute(t3);   
  22. pool.execute(t4);   
  23. pool.execute(t5);   
  24. //关闭线程池   
  25. pool.shutdown();   
  26. }   
  27. }   
  28. class MyThread extends Thread{   
  29. @Override   
  30. public void run() {   
  31. System.out.println(Thread.currentThread().getName()+
    "正在执行  。  。  。");   
  32. }   
  33. }   
  34. import java.util.concurrent.Executors;   
  35. import java.util.concurrent.ExecutorService;   
  36. /**   
  37. * Java线程:线程池-   
  38. *   
  39. * @author Administrator 2009-11-4 23:30:44   
  40. */   
  41. public class Test {   
  42. public static void main(String[] args) {   
  43. //创建一个可重用固定线程数的线程池   
  44. ExecutorService pool = Executors.newFixedThreadPool(2);   
  45. //创建实现了Runnable接口对象,Thread对象当然也实现了Runnable接口   
  46. Thread t1 = new MyThread();   
  47. Thread t2 = new MyThread();   
  48. Thread t3 = new MyThread();   
  49. Thread t4 = new MyThread();   
  50. Thread t5 = new MyThread();   
  51. //将线程放入池中进行执行   
  52. pool.execute(t1);   
  53. pool.execute(t2);   
  54. pool.execute(t3);   
  55. pool.execute(t4);   
  56. pool.execute(t5);   
  57. //关闭线程池   
  58. pool.shutdown();   
  59. }   
  60. }   
  61. class MyThread extends Thread{   
  62. @Override   
  63. public void run() {   
  64. System.out.println(Thread.currentThread().getName()+
    "正在执行  。  。  。");   
  65. }  

Java线程池代码

  1. pool-1-thread-1正在执行  。  。  。   
  2. pool-1-thread-1正在执行  。  。  。   
  3. pool-1-thread-1正在执行  。  。  。   
  4. pool-1-thread-1正在执行  。  。  。   
  5. pool-1-thread-2正在执行  。  。  。   
  6. Process finished with exit code 0  

以上就是对Java线程池的详细介绍  。