java 线程同步

来源:互联网 发布:四川省广电网络 编辑:程序博客网 时间:2024/05/29 17:13

 //1

public class Printer extends Thread {
 
 static int num=0;
 
 Integer op = 50;
 public Printer(String s)
 {
  this.setName(s);
 }
 public void run()
 {     
  sum();   
 }
 
 public void sum()
 {  
   
  
  while(num<50)
  {
   
  
   synchronized (op) {   
    num++;

    try {
    
     sleep(1000);
   
    } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    
     e.printStackTrace();
   
    }
    System.out.println(this.getName()+":"+num);   
   
  
   }
  }
 }

}

//2.

public class Text {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  Printer Thread1,Thread2,Thread3,Thread4;
  
  Thread1 = new Printer("Thread1");
  Thread2 = new Printer("Thread2");
  Thread3 = new Printer("Thread3");
  Thread4 = new Printer("Thread4");
  Thread1.start();
  Thread2.start();
  Thread3.start();
  Thread4.start();
  
 }

}