dave on Nostr: ...
不,这个单例对象是安全的。由于synchronized的作用,既可以防止线程读取变量singleton2的时候发生脏读(dirty read),又可以防止在第一次检查时实现singleton2变量没有初始化,而两个线程同时去初始化singleton2的情况出现,所以synchronized内部并不需要第二次检查,从而可以保证singleton2是线程安全的。
Published at
2023-02-08 09:43:54Event JSON
{
"id": "cf3174e481f009e88fcc8ba8af07f46dc2efee33869d85741943bb20bfa9688e",
"pubkey": "5c10ed0678805156d39ef1ef6d46110fe1e7e590ae04986ccf48ba1299cb53e2",
"created_at": 1675849434,
"kind": 1,
"tags": [
[
"e",
"02384d7b2cb74c728c4ee3cda470f1163b6e1feb37e9721cd42b5beb4b575c7e",
"",
"root"
],
[
"e",
"64e16f56f3dfe807aa9242e1228bbbaf9df59ab129f6caa84ac1feb0eb9b1917",
"",
"reply"
],
[
"p",
"aae9cfdb3113db442c1ad8d4c670a28091e5267748e71d2c1e189e423dbea1bf"
]
],
"content": "不,这个单例对象是安全的。由于synchronized的作用,既可以防止线程读取变量singleton2的时候发生脏读(dirty read),又可以防止在第一次检查时实现singleton2变量没有初始化,而两个线程同时去初始化singleton2的情况出现,所以synchronized内部并不需要第二次检查,从而可以保证singleton2是线程安全的。",
"sig": "0192ff00692056fdd5b08532e2f2fcd391f2816484d0c54074fa57587187c1ffcc5e66196909f02baa806dc477a4cc53204bb9bd82cb371fa9ae7d36c29b9fef"
}