1   同步概念:

java 同步与死锁

案例 代码:

package zyl.thread;
class MyThreadDemo implements Runnable{
 private int ticket = 5;
 public void run()
 {
  //资源共享的时候需要用到同步
  synchronized(this){
   for(int i =0;i<10;i++)
   {
               tell();
    //    if(ticket>0)
//    {
//     try {
//      Thread.sleep(1000);
//     } catch (InterruptedException e) {
//      // TODO Auto-generated catch block
//      e.printStackTrace();
//     }
//     System.out.println("车票:"+ticket--);
//    }
   }
  }
  
 }
 public synchronized void tell()
 {
  if(ticket>0)
  {
   try {
    Thread.sleep(1000);
   } catch (InterruptedException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
   System.out.println("车票:"+ticket--);
  }
 }
}
/*
 * 死锁:学生找工作(高薪)
 *    企业要你有工作经验(经验)
 *    解决死锁必须有一方 降低要求
 */
public class ThreadDemo05 {
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  MyThreadDemo m = new MyThreadDemo();
  //五张票  三个窗口买  一起公用五张票的资源
  Thread  t1 = new Thread(m);
  Thread  t2 = new Thread(m);
  Thread  t3 = new Thread(m);
  t1.start();
  t2.start();
  t3.start();
  
 }
}

案例结果

车票:5
车票:4
车票:3
车票:2
车票:1


相关文章:

  • 2021-06-15
  • 2021-10-15
  • 2021-10-14
  • 2021-11-17
  • 2021-09-14
  • 2021-05-14
  • 2022-12-23
  • 2021-08-28
猜你喜欢
  • 2022-12-23
  • 2021-11-11
  • 2022-12-23
  • 2022-01-15
  • 2022-12-23
  • 2022-02-22
  • 2021-06-08
相关资源
相似解决方案