Archiver

Singleton Pattern ພຽງ​ແຕ່​ຫນຶ່ງ​ຕົວ​ຢ່າງ​ຖືກ​ສ້າງ​ຂຶ້ນ​ໃນ​ຫລາຍ Threading

ໃນ​ຂະ​ນະ​ທີ່​ການ​ນໍາ​ໃຊ້​ຮູບ​ແບບ​ການ​ຊິງ​ໄດ້, ພຽງ​ແຕ່​ຫນຶ່ງ​ຕົວ​ຢ່າງ​ແມ່ນ​ການ​ສ້າງ​ຕັ້ງ​ໃນ​ກະ​ທູ້​ຫຼາຍ?

ການ​ນໍາ​ໃຊ້​ລະ​ດັບ singleton threadsafe ຈະ​ຮັບ​ປະ​ກັນ​ວ່າ​ມີ​ພຽງ​ແຕ່​ຫນຶ່ງ​ຕົວ​ຢ່າງ​ແມ່ນ​ການ​ສ້າງ​ຕັ້ງ.

ລະ​ດັບ​ຜະ​ນຶກ​ສາ​ທາ​ລະ​ນະ Singleton
{
static ສ່ວນ​ຕົວ Singleton singleton = null;
ສ່ວນ​ຕົວ singletonLock ວັດ​ຖຸ​ອ່ານ​ຢ່າງ​ດຽວ static = ວັດ​ຖຸ​ໃຫມ່();

ສ່ວນ​ຕົວ Singleton() {}
static ສາ​ທາ​ລະ​ນະ Singleton getInstance()
{
ລັອກ (singletonLock)
{
ຖ້າ​ຫາກ​ວ່າ (null singleton ==)
{
singleton = new Singleton();
}
ຊິງ​ກັບ​ຄືນ​ມາ ;
}
}
}

ບັນ​ຫາ​ທີ່​ຈະ​ຍົກ​ສູງ​ບົດ​ບາດ​ໃນ​ເວ​ລາ​ທີ່​ການ​ສ້າງ​ຕົວ​ຢ່າງ​ທໍາ​ອິດ.

ການ​ນໍາ​ໃຊ້ lock() ຈະ​ສະ​ຫນອງ​ໃຫ້​ພວກ​ເຮົາ​ມີ​ຄວາມ​ປອດ​ໄພ​ກະ​ທູ້​ເພື່ອ​ຫຼີກ​ເວັ້ນ​ການ​ປະ​ຕິ​ບັດ​ຂອງ​ທັງ​ສອງ​ກະ​ທູ້​ທີ່​ໃຊ້​ເວ​ລາ​ດຽວ​ກັນ​ໄດ້​ເພື່ອ​ສ້າງ​ຕົວ​ຢ່າງ.

ອີກ​ເທື່ອ​ຫນຶ່ງ​ພວກ​ເຮົາ​ໄດ້​ກວດ​ສອບ​ໄດ້ (null singletonobject ==) ສະ​ນັ້ນ​ມັນ​ຈະ​ຮັບ​ປະ​ກັນ​ວ່າ​ການ​ຍົກ​ຕົວ​ຢ່າງ​ມີ​ພຽງ​ແຕ່​ຫນຶ່ງ​ຄັ້ງ​ຈະ​ໄດ້​ຮັບ​ການ​ສ້າງ​ຕັ້ງ​ຂື້ນ.

ທາງ​ເລືອກ​ທີ່​ກວດ​ສອບ​ຈະ​ພິ​ສູດ​ຢ່າງ​ເຕັມ​ທີ່​ສໍາ​ລັບ​ການ​ຮຽນ​ຂອງ​ພວກ​ເຮົາ.

ອອກ​ຈາກ Reply ເປັນ

ທ່ານ​ສາ​ມາດ​ນໍາ​ໃຊ້ tags HTML ເຫຼົ່າ​ນີ້

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>