当前位置: 移动技术网 > IT编程>开发语言>Java > java 线程锁详细介绍及实例代码

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

2019年07月22日  | 移动技术网IT编程  | 我要评论

java 线程锁

在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();
      }
    }

  }
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网