synchronized可以锁字符串吗
时间: 2023-09-14 09:08:42 浏览: 245
Java并发 synchronized锁住的内容解析
synchronized 关键字可以锁定对象,而不是字符串。在 Java 中,每个对象都有一个内置锁定,当线程访问该对象时,它必须先获得该对象的锁定。因此,您可以锁定一个对象并在同步块中使用它来保护关键代码段。
如果您想要锁定一个字符串,可以创建一个包装该字符串的对象,并使用 synchronized 关键字来锁定该对象。例如:
```
String str = "hello";
synchronized (str.intern()) {
// 在这里执行同步操作
}
```
在这个例子中,我们使用 `str.intern()` 方法创建了一个新的对象,它的值与 `str` 相同。然后,我们将这个对象用作同步块的锁定对象,以保护关键代码段。
阅读全文