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.

相关文章

  • Java并发教程

    Java并发教程 Java并发概述Java并发环境设置Java并发主要操作Java并发性线程间通信Java并发同步...

  • 4 Java并发同步

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

  • Java并发编程(六)阻塞队列

    相关文章Java并发编程(一)线程定义、状态和属性 Java并发编程(二)同步Java并发编程(三)volatil...

  • Java并发编程(四)Java内存模型

    相关文章Java并发编程(一)线程定义、状态和属性 Java并发编程(二)同步Java并发编程(三)volatil...

  • Java并发编程(六)阻塞队列

    相关文章Java并发编程(一)线程定义、状态和属性 Java并发编程(二)同步Java并发编程(三)volatil...

  • Java并发编程(七)ConcurrentLinkedQueue

    相关文章Java并发编程(一)线程定义、状态和属性 Java并发编程(二)同步Java并发编程(三)volatil...

  • Java 并发

    目录 (1)基础概念 (2)线程 (3)锁 (4)同步器 (5)并发容器和框架 (6)Java并发工具类 (7)原...

  • Java同步机制之死锁

    Java并发系列番外篇——同步机制(三) 姊妹篇《Java同步机制之synchronized》姊妹篇《Java同步...

  • Java 8 并发教程:同步和锁

    Java 8 并发教程:同步和锁 原文:Java 8 Concurrency Tutorial: Synchron...

  • 《Java并发编程实战》学习笔记--并发容器类

    《Java并发编程实战》学习笔记--同步容器类前面介绍了同步容器类,下面来说说并发容器类。 同步容器类:将所有对容...

网友评论

    本文标题:4 Java并发同步

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