首页 > 编程 > Java > 正文

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

2019-11-26 13:23:15
字体:
来源:转载
供稿:网友

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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表