我是靠谱客的博主 狂野故事,最近开发中收集的这篇文章主要介绍踏坑:不要用字符串常量去加锁,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

错误的写法:

 static private final String LOCK = "LOCK";
void testMethod() {
synchronized(LOCK) {
...
}
}

正确的写法:

static private final Object LOCK = new Object();
void testMethod() {
synchronized(LOCK) {
...
}

原因:

这个地方的String不用new的方式去创建的话可能会被死锁,因为字符串常量是在JVM中共享的,如果别的程序也用了这个字符串常量去加锁的话很可能会造成死锁。更安全和简便的方法

static private final Object LOCK = new Object();

应该用new,不要直接=,对于int,最好使用int a[0] ,因为array也是对象,不像Integer,a[0]的值可以改变。

最后

以上就是狂野故事为你收集整理的踏坑:不要用字符串常量去加锁的全部内容,希望文章能够帮你解决踏坑:不要用字符串常量去加锁所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部