ในขณะที่ใช้รูปแบบเดี่ยว, เพียงหนึ่งตัวอย่างที่สร้างขึ้นในหลายเธรด?
การใช้ระดับของ threadsafe เดี่ยวจะรับประกันได้ว่าเพียงหนึ่งตัวอย่างจะถูกสร้างขึ้น.
ซิงเกิลที่ปิดสนิทของประชาชนระดับ
{
เอกชนคงซิงเกิลเดี่ยว = null;
เอกชนคงอ่านได้อย่างเดียววัตถุ singletonLock = วัตถุใหม่();
ส่วนตัว Singleton() {}
สาธารณะคง GetInstance Singleton()
{
ล็อค (singletonLock)
{
ถ้า (เดี่ยว == null)
{
เดี่ยว = ซิงเกิลใหม่();
}
กลับเดี่ยว ;
}
}
}
ฉบับที่จะยกเฉพาะเมื่อการสร้างอินสแตนซ์แรก.
ใช้ล็อค() จะให้เราด้ายปลอดภัยเพื่อหลีกเลี่ยงการดำเนินการของสองหัวข้อในเวลาเดียวกันเพื่อสร้างอินสแตนซ์.
อีกครั้งเราจะมีการตรวจสอบ (singletonobject == null) จึงจะรับประกันได้ว่าเพียงตัวอย่างครั้งจะถูกสร้างขึ้น.
ตัวเลือกที่ตรวจสอบอีกครั้งจะเป็นหลักฐานอย่างเต็มที่สำหรับการเรียนของเรา.
ปล่อยให้ตอบกลับ