ಬಿಡಿಯೆಲೆ ಮಾದರಿಯನ್ನು ಬಳಸಿ, ಕೇವಲ ಒಂದು ಉದಾಹರಣೆಗೆ ಬಹು ಥ್ರೆಡ್ಡಿಂಗ್ ಸೃಷ್ಟಿಯಾದ?
Threadsafe ಬಿಡಿಯೆಲೆ ವರ್ಗ ಬಳಸಿ ಕೇವಲ ಒಂದು ಉದಾಹರಣೆಗೆ ರಚಿಸಲಾಗಿದೆ ಖಚಿತಪಡಿಸುತ್ತದೆ.
ಸಾರ್ವಜನಿಕ ಮೊಹರು ವರ್ಗ ಸಿಂಗಲ್ಟನ್
{
ಖಾಸಗಿ ಸ್ಥಿರ ಸಿಂಗಲ್ಟನ್ ಬಿಡಿಯೆಲೆ = ಶೂನ್ಯ;
ಖಾಸಗಿ ಸ್ಥಿರ ಓದಲು ವಸ್ತು singletonLock = ಹೊಸ ವಸ್ತು();
ಖಾಸಗಿ ಸಿಂಗಲ್ಟನ್() {}
ಸಾರ್ವಜನಿಕ ಸ್ಥಿರ ಸಿಂಗಲ್ಟನ್ GetInstance()
{
ಲಾಕ್ (singletonLock)
{
ವೇಳೆ (ಬಿಡಿಯೆಲೆ == ಶೂನ್ಯ)
{
ಬಿಡಿಯೆಲೆ = ಹೊಸ ಸಿಂಗಲ್ಟನ್();
}
ರಿಟರ್ನ್ ಬಿಡಿಯೆಲೆ ;
}
}
}
ಸಂಚಿಕೆ ವಿಚಾರಣಾ ಮಾತ್ರ ಸೃಷ್ಟಿ ಪಡೆಯುವರು.
ಲಾಕ್ ಬಳಸಿ() ನಮಗೆ ಉದಾಹರಣೆಗೆ ರಚಿಸಲು ಒಂದು ಅದೇ ಸಮಯದಲ್ಲಿ ಎರಡು ಎಳೆಗಳನ್ನು ಮರಣದಂಡನೆ ತಪ್ಪಿಸಲು ಸುರಕ್ಷಿತ ಥ್ರೆಡ್ ಒದಗಿಸುತ್ತದೆ.
ಮತ್ತೆ ನಾವು ಪರಿಶೀಲಿಸುತ್ತಿರುವ (singletonobject == ಶೂನ್ಯ) so it will guarantee that only once instance will be created.
double check option will be full proof for our class.
ಒಂದು ಉತ್ತರಿಸಿ ಬಿಡಿ