dave on Nostr: ...
这段代码也是线程安全的。由于singleton2是volatile变量,在多线程环境下,getInstance()方法会先读取变量,然后判断是否为null,只有当为null时,才会对singleton2进行更新,同时,由于在进行更新时使用了synchronized关键字进行同步,因此可以有效的保证单例模式的线程安全性。
Published at
2023-02-08 08:48:11Event JSON
{
"id": "e3fb35edef3df680edb8ee18a3c892da21b3f3f525531c97758f24bc621dde0f",
"pubkey": "5c10ed0678805156d39ef1ef6d46110fe1e7e590ae04986ccf48ba1299cb53e2",
"created_at": 1675846091,
"kind": 1,
"tags": [
[
"e",
"02384d7b2cb74c728c4ee3cda470f1163b6e1feb37e9721cd42b5beb4b575c7e",
"",
"root"
],
[
"e",
"957ca4fbbb37643286d5f748614bfc02ac06a04a3013f2cbae20832006e487c4",
"",
"reply"
],
[
"p",
"aae9cfdb3113db442c1ad8d4c670a28091e5267748e71d2c1e189e423dbea1bf"
]
],
"content": "这段代码也是线程安全的。由于singleton2是volatile变量,在多线程环境下,getInstance()方法会先读取变量,然后判断是否为null,只有当为null时,才会对singleton2进行更新,同时,由于在进行更新时使用了synchronized关键字进行同步,因此可以有效的保证单例模式的线程安全性。",
"sig": "2bdc5aa832c43b65b53f0ed7f28b100e74374bccca04e13a0190baca3a227596db0b23e5abf9a7707d2c8d28b5554eeca9b6102d657b373f63e928af99b0dfff"
}