ThreadPoolMain.java
上传用户:songled
上传日期:2022-07-14
资源大小:94k
文件大小:1k
源码类别:

进程与线程

开发平台:

Java

  1. public class ThreadPoolMain extends Object {
  2. public static Runnable makeRunnable(
  3. final String name, 
  4. final long firstDelay
  5. ) {
  6. return new Runnable() {
  7. public void run() {
  8. try {
  9. System.out.println(name +": starting up");
  10. Thread.sleep(firstDelay);
  11. System.out.println(name + ": doing some stuff");
  12. Thread.sleep(2000);
  13. System.out.println(name + ": leaving");
  14. } catch ( InterruptedException ix ) {
  15. System.out.println(name + ": got interrupted!");
  16. return;
  17. } catch ( Exception x ) {
  18. x.printStackTrace();
  19. }
  20. }
  21. public String toString() {
  22. return name;
  23. }
  24. };
  25. }
  26. public static void main(String[] args) {
  27. try {
  28. ThreadPool pool = new ThreadPool(3);
  29. Runnable ra = makeRunnable("RA", 3000);
  30. pool.execute(ra);
  31. Runnable rb = makeRunnable("RB", 1000);
  32. pool.execute(rb);
  33. Runnable rc = makeRunnable("RC", 2000);
  34. pool.execute(rc);
  35. Runnable rd = makeRunnable("RD", 60000);
  36. pool.execute(rd);
  37. Runnable re = makeRunnable("RE", 1000);
  38. pool.execute(re);
  39. pool.stopRequestIdleWorkers();
  40. Thread.sleep(2000);
  41. pool.stopRequestIdleWorkers();
  42. Thread.sleep(5000);
  43. pool.stopRequestAllWorkers();
  44. } catch ( InterruptedException ix ) {
  45. ix.printStackTrace();
  46. }
  47. }
  48. }