软件编程
位置:首页>> 软件编程>> java编程>> java 线程锁详细介绍及实例代码

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

作者:lqh  发布时间:2022-03-16 13:50:45 

标签:java,线程锁

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

}
}

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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com