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

进程与线程

开发平台:

Java

  1. public class CubbyHoleMain extends Object {
  2. private static void print(String msg) {
  3. String name = Thread.currentThread().getName();
  4. System.out.println(name + ": " + msg);
  5. }
  6. public static void main(String[] args) {
  7. final CubbyHole ch = new CubbyHole();
  8. Runnable runA = new Runnable() {
  9. public void run() {
  10. try {
  11. String str;
  12. Thread.sleep(500);
  13. str = "multithreaded";
  14. ch.putIn(str);
  15. print("in run() - just put in: '" + 
  16. str + "'");
  17. str = "programming";
  18. ch.putIn(str);
  19. print("in run() - just put in: '" + 
  20. str + "'");
  21. str = "with Java";
  22. ch.putIn(str);
  23. print("in run() - just put in: '" + 
  24. str + "'");
  25. } catch ( InterruptedException x ) {
  26. x.printStackTrace();
  27. }
  28. }
  29. };
  30. Runnable runB = new Runnable() {
  31. public void run() {
  32. try {
  33. Object obj;
  34. obj = ch.takeOut();
  35. print("in run() - just took out: '" + 
  36. obj + "'");
  37. Thread.sleep(500);
  38. obj = ch.takeOut();
  39. print("in run() - just took out: '" + 
  40. obj + "'");
  41. obj = ch.takeOut();
  42. print("in run() - just took out: '" + 
  43. obj + "'");
  44. } catch ( InterruptedException x ) {
  45. x.printStackTrace();
  46. }
  47. }
  48. };
  49. Thread threadA = new Thread(runA, "threadA");
  50. threadA.start();
  51. Thread threadB = new Thread(runB, "threadB");
  52. threadB.start();
  53. }
  54. }