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

进程与线程

开发平台:

Java

  1. public class StaticBlock extends Object {
  2. public static synchronized void staticA() {
  3. System.out.println("entering staticA()");
  4. try { Thread.sleep(5000); } 
  5. catch ( InterruptedException x ) { }
  6. System.out.println("leaving staticA()");
  7. }
  8. public static void staticB() {
  9. System.out.println("entering staticB()");
  10. synchronized ( StaticBlock.class ) {
  11. System.out.println(
  12. "in staticB() - inside sync block");
  13. try { Thread.sleep(2000); } 
  14. catch ( InterruptedException x ) { }
  15. }
  16. System.out.println("leaving staticB()");
  17. }
  18. public static void main(String[] args) {
  19. Runnable runA = new Runnable() {
  20. public void run() {
  21. StaticBlock.staticA();
  22. }
  23. };
  24. Thread threadA = new Thread(runA, "threadA");
  25. threadA.start();
  26. try { Thread.sleep(200); } 
  27. catch ( InterruptedException x ) { }
  28. Runnable runB = new Runnable() {
  29. public void run() {
  30. StaticBlock.staticB();
  31. }
  32. };
  33. Thread threadB = new Thread(runB, "threadB");
  34. threadB.start();
  35. }
  36. }