黑马程序员-----同步函数锁,this锁(黑马视频)

本文探讨了同步函数中使用的锁类型,通过示例代码演示了如何使用this关键字作为锁实现线程间的同步操作,并展示了两个线程同时进行售票操作的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------

同步函数用的是哪一个锁呢?
同步函数需要被对象调用,那么函数都有一个所属对象的引用.就是this
所以同步函数使用的锁就是this.

通过该程序进行验证.

使用2个线程来卖票
一个线程在同步代码块中.
一个线程在同步函数中.
都在执行卖票动作


package src.com.itheima;

public class ThreadDemo implements Runnable {
 private int tick=100;
 Object obj =new Object();
 boolean boo=true;
 public void run(){
  if(boo){
   while(true){
    synchronized (this) {
     if(tick>0){
      try{Thread.sleep(10);}catch(Exception e){  }
      System.out.println(Thread.currentThread().getName()+"--code---"+tick--);
     }
    }
    
   }
  }else{
   while(true)
   show();
  }
  
 }
 public synchronized  void show() {
  if(tick>0){
   try{Thread.sleep(10);}catch(Exception e){  }
   System.out.println(Thread.currentThread().getName()+"---show----"+tick--);
  }
 }
 public static void main(String[] args) {
  ThreadDemo t=new ThreadDemo();
  Thread a=new Thread(t);
  Thread b=new Thread(t);
  a.start();
  t.boo=false;
  b.start();
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值