Day13_72_类锁
2024-10-20 03:32:44
类锁
* 对象锁(synchronized method{})和类锁(static sychronized method{})的区别
- 对象锁也叫实例锁,对应synchronized关键字,当多个线程访问多个实例时,它们互不干扰,每个对象都拥有自己的锁,如果是单例模式下,那么就是变成和类锁一样的功能。
- 对象锁防止在同一个时刻多个线程访问同一个对象的synchronized块。如果不是同一个对象就没有这样子的限制。
- 加锁静态方法,即类锁。可以换个方向理解,静态方法其实就是类方法,所以加锁静态方法,即类锁。类锁的范围是整个实体类,即全局锁。
代码实例
``
package com.shige.Thread;
/*
类锁,类锁只有一个
*/
public class ThreadTest12 {
public static void main(String[] args) throws InterruptedException { //创建线程
Thread thread=new Thread(new Precossor_12());
thread.setName("t1");
Thread thread1=new Thread(new Precossor_12());
thread1.setName("t2"); //启动线程
thread.start(); //延迟保证thread先执行
Thread.sleep(1000);
thread1.start(); } } class Precossor_12 implements Runnable{ @Override
public void run() {
if("t1".equals(Thread.currentThread().getName())){
MyClass.m1();
} if("t2".equals(Thread.currentThread().getName())){
MyClass.m2();
}
}
} class MyClass{
//synchronized 添加到静态方法上,线程执行到此方法后,会去找类锁
public synchronized static void m1(){
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("m1..............");
} // 该方法不会等m1结束在执行,有哪位它没有被synchronized修饰,如果使用synchronized修饰,那么就一定会等m1结束再执行
public static void m2(){
System.out.println("m2.............."); }
}
最新文章
- [Java面试七]Mybatis总结以及在面试中的一些问题.
- Swift - enumerateObjectsUsingBlock的用法
- 机器学习技法--学习笔记03--Kernel技巧
- hbase centOS生产环境配置笔记 (1 NameNode, 1 ResourceManager, 3 DataNode)
- 第二十一章 数据访问(In .net4.5) 之 序列化
- Xlib: connection to ";:0.0"; refused by server Xlib: No protocol specified解决方案
- 编译Android4.3内核源代码
- 【转】java--final
- 分布式日志收集系统Apache Flume的设计详细介绍
- Python 学习笔记9
- 关于如何介绍spring框架。
- Ocelot中文文档-微服务ServiceFabric
- 【MySql】常用方法总结
- Vue 组件&;组件之间的通信 父子组件的通信
- JXOJ(基于UOJ)部署日志
- 使用ajax上传表单(带文件)
- (三)github之GIT的导入
- docker 私有仓库 harbor docker-compose
- Charles工具内存不足时解决办法
- luogu 1066 引水入城(bfs+贪心)
热门文章
- 力扣832. 翻转图像-C语言实现-简单题
- Tawk.to工具使用攻略--如何让访客通过tawk.to联系时先填写邮箱、联系方式等信息
- vue3中使用axios如何去请求数据
- 31Si2CrMoB
- free命令查看内存
- 内核报错kernel:NMI watchdog: BUG: soft lockup - CPU#1
- 剑指 Offer 50. 第一个只出现一次的字符 + 哈希表 + 有序哈希表
- CCF(URL映射:80分):字符串处理+模拟
- 05.从0实现一个JVM语言之目标平台代码生成-CodeGenerator
- 翻译:《实用的Python编程》04_00_Overview