网站首页 > 精选教程 正文
大家在写并发程序时,都会用到锁来隔离临界代码块,例如lock synchronize,其中synchronize主修饰在代码块或方法上,而方法有可能是普通的方法也有可能是static方法,你知道几种修饰用法有什么区别吗?
1.修饰在同步代码块上,一般这么使用synchronize(obj){},小括号内部是锁对象,只能拿到obj锁对象的线程才有资格执行同步块代码!
2.修饰在普通方法上,一般这么使用
public synchronize void method(){},只有获得类实例对象的monitor监视器锁,这样的线程才有资格执行该方法!但是不同类实例之间不存在锁冲突!
3.修饰在静态方法上,一般这么使用
public synchronize static method(){},该锁住的是类对象,而不是实例对象,如果一个线程拿到锁执行该方法,其他所有的线程都没资格执行该方法,记住!是所有线程,包括其他实例的线程!
这三种方式大家应该都用过,程序出现关于synchronize导致的性能问题,不知道朋友们有没有遇到过。例如,单线程时用stringbuffer频繁执行字符串append操作,或者vector向量集合用于操作数据,用单线程反而会变慢,因为会重复获取锁和释放锁,但其实背后也不见得一定会慢,至于为何,那就是要了解分级锁的偏向锁概念和原理,具体不展开详述!
想了解详细原理的朋友可以关注我,后续陆续推出各种流行技术介绍。。
猜你喜欢
- 2024-11-21 Java中的重重“锁”事
- 2024-11-21 线程进阶:多任务处理——Java中的锁(Unsafe基础)
- 2024-11-21 深入理解MySQL锁机制原理
- 2024-11-21 Java并发锁的原理,你所不知道的Java“锁”事
- 2024-11-21 阿里二面:你知道Java中的同步与锁机制详解?
- 2024-11-21 知识点深度解读系列-JAVA锁
- 2024-11-21 图解Java中的锁:什么是死锁?怎么排查死锁?怎么避免死锁?
- 2024-11-21 Java锁与线程的那些“不可描述”的事儿
- 2024-11-21 让人闻风丧胆的 Mysql 锁机制
- 2024-11-21 Java中各种锁的理解
你 发表评论:
欢迎- 04-11Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- 04-11Java中你知道几种从字符串中找指定的字符的数量
- 04-11探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- 04-11Python字符串详解与示例(python字符串的常见操作)
- 04-11java正则-取出指定字符串之间的内容
- 04-11String s1 = new String("abc");这句话创建了几个字符串对象?
- 04-11java判断字符串中是否包含某个字符
- 04-11关于java开发中正确的发牌逻辑编写规范
- 最近发表
-
- Java面试“字符串三兄弟”String、StringBuilder、StringBuffer
- Java中你知道几种从字符串中找指定的字符的数量
- 探秘Java面试中问的最多的String、StringBuffer、StringBuilder
- Python字符串详解与示例(python字符串的常见操作)
- java正则-取出指定字符串之间的内容
- String s1 = new String("abc");这句话创建了几个字符串对象?
- java判断字符串中是否包含某个字符
- 关于java开发中正确的发牌逻辑编写规范
- windows、linux如何后台运行jar(并且显示进程名)
- 腾讯大佬私人收藏,GitHub上最受欢迎的100个JAVA库,值得学习
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)