源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

java 线程锁详细介绍及实例代码

  • 时间:2022-12-27 20:08 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:java 线程锁详细介绍及实例代码
[b]java 线程锁[/b] 在Java线程中运用synchronized关键字来达到同步的 synchronized可以锁方法,锁类,锁对象,锁代码块 方法锁
// 加在方法上面的同步锁是this
  public synchronized void print() {
    System.out.println("同步方法");
    try {
      Thread.sleep(3000);
    } catch (InterruptedException e) {
      e.printStackTrace();
    }
  }
类锁
public synchronized void print(String msg) {
    // 类锁
    synchronized (MyThread.class) {
      System.out.println(msg);
      try {
        Thread.sleep(3000);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
  }
对象锁 以卖火车票为例
public class Window extends Thread {

  public Window(String name) {
    super(name);
  }

  static int tick = 100;
  static String obj = new String();

  @Override
  public void run() {
    // 开始卖票
    while (tick > 0) {
      // 同步代码块
      // 一把锁 钥匙
      // 所有的线程 必须在这里排队
      synchronized (obj) {
        if (tick > 0) {
          System.out.println(getName() + "卖出了第【" + tick + "】张票");// 失去了cpu资源
          tick--;
        }
      }
      try {
        Thread.sleep(100);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }

  }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部