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

进程与线程

开发平台:

Java

  1. public class TwoObjects extends Object {
  2. private String objID;
  3. public TwoObjects(String objID) {
  4. this.objID = objID;
  5. }
  6. public synchronized void doStuff(int val) {
  7. print("entering doStuff()");
  8. int num = val * 2 + objID.length();
  9. print("in doStuff() - local variable num=" + num);
  10. // slow things down to make observations
  11. try { Thread.sleep(2000); } catch ( InterruptedException x ) { }
  12. print("leaving doStuff()");
  13. }
  14. public void print(String msg) {
  15. threadPrint("objID=" + objID + " - " + msg);
  16. }
  17. public static void threadPrint(String msg) {
  18. String threadName = Thread.currentThread().getName();
  19. System.out.println(threadName + ": " + msg);
  20. }
  21. public static void main(String[] args) {
  22. final TwoObjects obj1 = new TwoObjects("obj1");
  23. final TwoObjects obj2 = new TwoObjects("obj2");
  24. Runnable runA = new Runnable() {
  25. public void run() {
  26. obj1.doStuff(3);
  27. }
  28. };
  29. Thread threadA = new Thread(runA, "threadA");
  30. threadA.start();
  31. try { Thread.sleep(200); } catch ( InterruptedException x ) { }
  32. Runnable runB = new Runnable() {
  33. public void run() {
  34. obj2.doStuff(7);
  35. }
  36. };
  37. Thread threadB = new Thread(runB, "threadB");
  38. threadB.start();
  39. }
  40. }