4 Java并发同步

作者: 笑Skr人啊 | 来源:发表于2017-08-31 10:33 被阅读3次

    下面是一个具有同步功能的多线程示例,这是和上篇文章同样的例子,它依次打印计数器值,每次运行它时,它产生相同的结果。

    实例

    package ThreadMethod;
    
    class PrintDemo {
       public void printCount() {
          try {
             for(int i = 5; i > 0; i--) {
                System.out.println("Counter   ---   "  + i );
             }
          }catch (Exception e) {
             System.out.println("Thread  interrupted.");
          }
       }
    }
    
    class ThreadDemo extends Thread {
       private Thread t;
       private String threadName;
       PrintDemo  PD;
    
       ThreadDemo( String name,  PrintDemo pd) {
          threadName = name;
          PD = pd;
       }
    
       public void run() {
          synchronized(PD) {
             PD.printCount();
          }
          System.out.println("Thread " +  threadName + " exiting.");
       }
    
       public void start () {
          System.out.println("Starting " +  threadName );
          if (t == null) {
             t = new Thread (this, threadName);
             t.start ();
          }
       }
    }
    
    public class ThreadSynchronization {
    
       public static void main(String args[]) {
          PrintDemo PD = new PrintDemo();
    
          ThreadDemo T1 = new ThreadDemo( "Thread - 1 ", PD );
          ThreadDemo T2 = new ThreadDemo( "Thread - 2 ", PD );
    
          T1.start();
          T2.start();
    
          // wait for threads to end
          try {
             T1.join();
             T2.join();
          }catch( Exception e) {
             System.out.println("Interrupted");
          }
       }
    }
    
    
    

    运行

    Starting Thread - 1 
    Starting Thread - 2 
    Counter   ---   5
    Counter   ---   4
    Counter   ---   3
    Counter   ---   2
    Counter   ---   1
    Thread Thread - 1  exiting.
    Counter   ---   5
    Counter   ---   4
    Counter   ---   3
    Counter   ---   2
    Counter   ---   1
    Thread Thread - 2  exiting.
    
    

    相关文章

      网友评论

        本文标题:4 Java并发同步

        本文链接:https://www.haomeiwen.com/subject/xnzfjxtx.html