java 线程锁详细介绍及实例代码
发布时间:2021-01-11 12:19:23 所属栏目:Java 来源:互联网
导读:java线程锁在Java线程中运用synchronized关键字来达到同步的synchronized可以锁方法,锁类,锁对象,锁代码块
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(); } } } } 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持! (编辑:哈尔滨站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Java 线程池ExecutorService详解及实例代码
- java – 从XMLGregorianCalender中删除“Z”部分
- Mybatis多参数及实体对象传递实例讲解
- 判断以逗号分隔的字符串中是否包含某个数的实例
- Java用 Rhino/Nashorn 代替第三方 JSON 转换库
- java 中数据库连接的JDBC和驱动程序的深入分析
- java-ee – 在maven-embedded-glassfish-plugin上的CDI注入
- 浅谈java中的一维数组、二维数组、三维数组、多维数组
- java – 如何在Spring上运行EnableScheduling注释来重新启动
- java按字节截取带有汉字的字符串的解法(推荐)