Ticket lock
ಕಂಪ್ಯೂಟರ್ ವಿಜ್ಞಾನದಲ್ಲಿ, ಟಿಕೆಟ್ ಲಾಕ್ ಒಂದು ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಕಾರ್ಯವಿಧಾನ ಅಥವಾ ಲಾಕಿಂಗ್ ಅಲ್ಗಾರಿದಮ್ ಆಗಿದೆ, ಇದು ಒಂದು ರೀತಿಯ ಸ್ಪಿನ್ಲಾಕ್ ಆಗಿದ್ದು, ಇದು ನಿರ್ಣಾಯಕ ವಿಭಾಗವನ್ನು ಪ್ರವೇಶಿಸಲು ಯಾವ ಕಾರ್ಯಗತಗೊಳಿಸುವ ದಾರವನ್ನು ಅನುಮತಿಸಲಾಗಿದೆ ಎಂಬುದನ್ನು ನಿಯಂತ್ರಿಸಲು "ಟಿಕೆಟ್ಗಳನ್ನು" ಬಳಸುತ್ತದೆ. ವಿಮರ್ಶೆ ಟಿಕೆಟ್ ಲಾಕ್ನ ಮೂಲ ಪರಿಕಲ್ಪನೆಯು ಟಿಕೆಟ್ ಕ್ಯೂ ನಿರ್ವಹಣಾ ವ್ಯವಸ್ಥೆಯನ್ನು ಹೋಲುತ್ತದೆ. ಅನೇಕ ಬೇಕರಿಗಳು ಮತ್ತು ಡೆಲಿಗಳು ಗ್ರಾಹಕರಿಗೆ ಅವರು ಬರುವ ಕ್ರಮದಲ್ಲಿ, ಅವರನ್ನು ಸಾಲಿನಲ್ಲಿ ನಿಲ್ಲದಂತೆ ಸೇವೆ ಸಲ್ಲಿಸಲು ಬಳಸುವ ವಿಧಾನ ಇದಾಗಿದೆ. ಸಾಮಾನ್ಯವಾಗಿ, ಗ್ರಾಹಕರು ಆಗಮಿಸಿದಾಗ ಅನುಕ್ರಮವಾಗಿ ಸಂಖ್ಯೆಯ ಟಿಕೆಟ್ಗಳನ್ನು ಎಳೆಯುವ ಕೆಲವು ರೀತಿಯ ವಿತರಕಗಳಿವೆ. ವಿತರಕವು ಸಾಮಾನ್ಯವಾಗಿ ಅದರ ಮೇಲೆ ಅಥವಾ ಹತ್ತಿರದಲ್ಲಿ "ದಯವಿಟ್ಟು ಒಂದು ಸಂಖ್ಯೆಯನ್ನು ತೆಗೆದುಕೊಳ್ಳಿ" ಎಂದು ಹೇಳುವ ಚಿಹ್ನೆಯನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಈಗ ನೀಡಲಾಗುತ್ತಿರುವ ಟಿಕೆಟ್ ಸಂಖ್ಯೆಯನ್ನು ಪ್ರದರ್ಶಿಸುವ ಡೈನಾಮಿಕ್ ಚಿಹ್ನೆ, ಸಾಮಾನ್ಯವಾಗಿ ಡಿಜಿಟಲ್ ಸಹ ಇರುತ್ತದೆ. ಪ್ರತಿ ಬಾರಿ ಮುಂದಿನ ಟಿಕೆಟ್ ಸಂಖ್ಯೆ (ಗ್ರಾಹಕರು) ನೀಡಲು ಸಿದ್ಧವಾದಾಗ, "ಈಗ ಸೇವೆ ಸಲ್ಲಿಸಲಾಗುತ್ತಿದೆ" ಚಿಹ್ನೆಯನ್ನು ಹೆಚ್ಚಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಸಂಖ್ಯೆಯನ್ನು ಕರೆಯಲಾಗುತ್ತದೆ. ಇದು ಕಾಯುವ ಎಲ್ಲಾ ಗ್ರಾಹಕರಿಗೆ ಸರತಿಯಲ್ಲಿ ಅಥವಾ ಸಾಲಿನಲ್ಲಿ ಇನ್ನೂ ಎಷ್ಟು ಜನರು ತಮ್ಮ ಮುಂದೆ ಇದ್ದಾರೆ ಎಂಬುದನ್ನು ತಿಳಿಯಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಈ ವ್ಯವಸ್ಥೆಯಂತೆ, ಟಿಕೆಟ್ ಲಾಕ್ ಒಂದು ಫಸ್ಟ್ ಇನ್ ಫಸ್ಟ್ ಔಟ್ (ಎಫ್. ಐ. ಎಫ್. ಓ) ಕ್ಯೂ ಆಧಾರಿತ ಕಾರ್ಯವಿಧಾನವಾಗಿದೆ. ಇದು ಲಾಕ್ ಸ್ವಾಧೀನದ ನ್ಯಾಯೋಚಿತತೆಯ ಪ್ರಯೋಜನವನ್ನು ಸೇರಿಸುತ್ತದೆ ಮತ್ತು ಈ ಕೆಳಗಿನಂತೆ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ; 0 ರಿಂದ ಪ್ರಾರಂಭವಾಗುವ ಎರಡು ಪೂರ್ಣಾಂಕ ಮೌಲ್ಯಗಳಿವೆ. ಮೊದಲ ಮೌಲ್ಯವು ಕ್ಯೂ ಟಿಕೆಟ್ ಆಗಿದ್ದು, ಎರಡನೆಯದು ಡೆಕ್ಯೂ ಟಿಕೆಟ್ ಆಗಿದೆ. ಕ್ಯೂ ಟಿಕೆಟ್ ಸರತಿಯಲ್ಲಿರುವ ದಾರದ ಸ್ಥಾನವಾಗಿದೆ, ಮತ್ತು ಡೆಕ್ಯೂ ಟಿಕೆಟ್ ಟಿಕೆಟ್ ಅಥವಾ ಕ್ಯೂ ಸ್ಥಾನವಾಗಿದೆ, ಅದು ಈಗ ಲಾಕ್ ಅನ್ನು ಹೊಂದಿದೆ (ಈಗ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತಿದೆ). ದಾರವು ಬಂದಾಗ, ಅದು ಪರಮಾಣು ರೂಪದಲ್ಲಿ ಪಡೆಯುತ್ತದೆ ಮತ್ತು ನಂತರ ಕ್ಯೂ ಟಿಕೆಟ್ ಅನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ಎರಡು ಎಳೆಗಳು ಏಕಕಾಲದಲ್ಲಿ ಒಂದೇ ಟಿಕೆಟ್ ಸಂಖ್ಯೆಯನ್ನು ಪಡೆಯುವುದನ್ನು ತಡೆಯಲು ಈ ಕಾರ್ಯಾಚರಣೆಯ ಪರಮಾಣು ಅಗತ್ಯವಿರುತ್ತದೆ. ಇದು ನಂತರ ಅದರ ಟಿಕೆಟ್ ಮೌಲ್ಯವನ್ನು, ಹೆಚ್ಚಳದ ಮೊದಲು, ಡೆಕ್ಯೂ ಟಿಕೆಟ್ನ ಮೌಲ್ಯದೊಂದಿಗೆ ಹೋಲಿಸುತ್ತದೆ. ಅವು ಒಂದೇ ಆಗಿದ್ದರೆ, ಥ್ರೆಡ್ ಅನ್ನು ನಿರ್ಣಾಯಕ ವಿಭಾಗವನ್ನು ಪ್ರವೇಶಿಸಲು ಅನುಮತಿಸಲಾಗಿದೆ. ಅವು ಒಂದೇ ಆಗಿರದಿದ್ದರೆ, ಮತ್ತೊಂದು ದಾರವು ಈಗಾಗಲೇ ನಿರ್ಣಾಯಕ ವಿಭಾಗದಲ್ಲಿರಬೇಕು ಮತ್ತು ಈ ದಾರವು ಕಾರ್ಯನಿರತವಾಗಿರಬೇಕು-ಕಾಯಿರಿ ಅಥವಾ ಇಳುವರಿಯಾಗಿರಬೇಕು. ಒಂದು ದಾರವು ಲಾಕ್ನಿಂದ ನಿಯಂತ್ರಿಸಲ್ಪಡುವ ನಿರ್ಣಾಯಕ ವಿಭಾಗವನ್ನು ತೊರೆದಾಗ, ಅದು ಆಣ್ವಿಕವಾಗಿ ಡೆಕ್ಯೂ ಟಿಕೆಟ್ ಅನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ಇದು ಮುಂದಿನ ಕಾಯುವ ದಾರವನ್ನು, ಮುಂದಿನ ಅನುಕ್ರಮ ಟಿಕೆಟ್ ಸಂಖ್ಯೆಯನ್ನು ಹೊಂದಿರುವ ದಾರವನ್ನು, ನಿರ್ಣಾಯಕ ವಿಭಾಗವನ್ನು ಪ್ರವೇಶಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಫೇರ್ನೆಸ್ ಆಫ್ ಲಾಕ್ ಅಕ್ವಿಸಿಷನ್ಃ ಲಾಕ್ ಅಕ್ವಿಸಿಷನ್ನಲ್ಲಿ ಫೇರ್ನೆಸ್ನ ಕಲ್ಪನೆಯು ಥ್ರೆಡ್ಗಳು ಯಶಸ್ವಿಯಾಗಿ ಲಾಕ್ ಅನ್ನು ಪಡೆಯುವ ಕ್ರಮಕ್ಕೆ ಅನ್ವಯಿಸುತ್ತದೆ. ಕೆಲವು ರೀತಿಯ ನ್ಯಾಯೋಚಿತತೆಯನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿದರೆ, ಇತರ ಎಳೆಗಳ ಪರವಾಗಿ ಬೀಗವನ್ನು ಪಡೆಯಲು ಸಾಧ್ಯವಾಗದ ಕಾರಣ ಅದು ದೀರ್ಘಾವಧಿಯವರೆಗೆ ಹಸಿವಿನಿಂದ ಹೊರಗುಳಿಯುವುದನ್ನು ತಡೆಯುತ್ತದೆ. ನ್ಯಾಯೋಚಿತತೆಯ ಖಾತರಿಗಳಿಲ್ಲದೆ, ಒಂದು ದಾರವು (ಅಥವಾ ಅನೇಕ ಎಳೆಗಳು) ಇತರರಿಗೆ ಹೋಲಿಸಿದರೆ ಕಾರ್ಯಗತಗೊಳ್ಳಲು ಅಸಮರ್ಪಕವಾಗಿ ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುವ ಪರಿಸ್ಥಿತಿ ಉದ್ಭವಿಸಬಹುದು. ಲಾಕ್ ಸ್ವಾಧೀನದಲ್ಲಿ ನ್ಯಾಯೋಚಿತತೆಯ ಕೊರತೆಯಿಂದಾಗಿ ದಾರವನ್ನು ಹೇಗೆ ಅತಿಯಾಗಿ ವಿಳಂಬಗೊಳಿಸಬಹುದು ಎಂಬುದನ್ನು ತೋರಿಸಲು ಈಗ ಒಂದು ಸರಳ ಉದಾಹರಣೆಯನ್ನು ಪ್ರಸ್ತುತಪಡಿಸಲಾಗುತ್ತದೆ. ಮೂರು ಥ್ರೆಡ್ಗಳು, ಪ್ರತಿಯೊಂದೂ ಮೂರು ಪ್ರೊಸೆಸರ್ಗಳಲ್ಲಿ ಒಂದರ ಮೇಲೆ ಕಾರ್ಯಗತಗೊಳ್ಳುವ, ಈ ಕೆಳಗಿನ ಸೂಡೊಕೋಡ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತಿರುವ ಒಂದು ಪ್ರಕರಣವನ್ನು ಊಹಿಸಿಕೊಳ್ಳಿ, ಅದು ನ್ಯಾಯೋಚಿತತೆಯನ್ನು ಪರಿಗಣಿಸದೆ ಲಾಕ್ ಅನ್ನು ಬಳಸುತ್ತದೆ. ಆದರೆ (1) {ಲಾಕ್ {. ನಿರ್ಣಾಯಕ ವಿಭಾಗ.} ಅನ್ಲಾಕ್} ಈಗ ಪಿ1, ಪಿ2 ಮತ್ತು ಪಿ3 ಎಂಬ ಮೂರು ಪ್ರೊಸೆಸರ್ಗಳ ಭೌತಿಕ ಜೋಡಣೆಯನ್ನು ಊಹಿಸಿಕೊಳ್ಳಿ, ಇದು ಶೇರ್ಡ್ ಲಾಕ್ ವೇರಿಯೇಬಲ್ನ ಸ್ಥಳಕ್ಕೆ ಏಕರೂಪವಲ್ಲದ ಮೆಮೊರಿ ಪ್ರವೇಶ ಸಮಯಕ್ಕೆ ಕಾರಣವಾಗುತ್ತದೆ. ಮೂರು ಪ್ರೊಸೆಸರ್ಗಳಿಗೆ ಲಾಕ್ ವೇರಿಯೇಬಲ್ಗೆ ಪ್ರವೇಶ ಸಮಯವನ್ನು ಹೆಚ್ಚಿಸುವ ಕ್ರಮವು ಪಿ1 <ಪಿ2 <ಪಿ3 ಆಗಿದೆ. ಆದ್ದರಿಂದ ಲಾಕ್ ಅನ್ನು ಪಡೆದುಕೊಳ್ಳುವಲ್ಲಿ ಪಿ1 ಯಾವಾಗಲೂ ಹೆಚ್ಚು ಪ್ರಯೋಜನಕಾರಿಯಾಗಿದೆ, ನಂತರ ಪಿ2, ಪಿ3 ಅತ್ಯಂತ ಅನನುಕೂಲವಾಗಿದೆ. ನ್ಯಾಯೋಚಿತತೆಯ ಖಾತರಿಯ ಅನುಪಸ್ಥಿತಿಯಲ್ಲಿ ಈ ಪರಿಸ್ಥಿತಿಯು ಹೇಗೆ ಹಸಿವಿನಿಂದ ನರಳುತ್ತದೆ ಎಂಬುದನ್ನು ಈ ಮೂರು ಪ್ರೊಸೆಸರ್ಗಳು ಮೇಲಿನ ಸೂಡೊಕೋಡ್ ಅನ್ನು ಹೇಗೆ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತವೆ ಎಂಬುದರ ಕೆಳಗಿನ ವಿವರಣೆಯಲ್ಲಿ ತೋರಿಸಲಾಗಿದೆ. ಆರಂಭದಲ್ಲಿ, ಲಾಕ್ ಉಚಿತವಾಗಿರುತ್ತದೆ ಮತ್ತು ಎಲ್ಲಾ ಮೂರು ಪ್ರೊಸೆಸರ್ಗಳು ಏಕಕಾಲದಲ್ಲಿ ಲಾಕ್ ಅನ್ನು ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸುತ್ತವೆ (ಟೈಮ್ 1). ಪಿ1 ಲಾಕ್ಗೆ ವೇಗವಾಗಿ ಪ್ರವೇಶಿಸುವ ಸಮಯವನ್ನು ಹೊಂದಿರುವುದರಿಂದ, ಅದು ಅದನ್ನು ಮೊದಲು ಪಡೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ನಿರ್ಣಾಯಕ ವಿಭಾಗವನ್ನು ಪ್ರವೇಶಿಸುತ್ತದೆ. ಪಿ2 ಮತ್ತು ಪಿ3 ಈಗ ತಿರುಗುತ್ತಿದ್ದರೆ, ಪಿ1 ನಿರ್ಣಾಯಕ ವಿಭಾಗದಲ್ಲಿದೆ (ಸಮಯ 2). ನಿರ್ಣಾಯಕ ವಿಭಾಗದಿಂದ (ಸಮಯ 3) ನಿರ್ಗಮಿಸಿದ ನಂತರ, ಪಿ1 ಒಂದು ಅನ್ಲಾಕ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಿ, ಲಾಕ್ ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡುತ್ತದೆ. ಪಿ2, ಪಿ3 ಗಿಂತ ವೇಗವಾಗಿ ಲಾಕ್ಅನ್ನು ಪ್ರವೇಶಿಸುವುದರಿಂದ, ಅದು ಮುಂದಿನ ಲಾಕ್ಅನ್ನು ಪಡೆದುಕೊಳ್ಳುತ್ತದೆ ಮತ್ತು ನಿರ್ಣಾಯಕ ವಿಭಾಗವನ್ನು ಪ್ರವೇಶಿಸುತ್ತದೆ (ಸಮಯ 4). ಪಿ2 ನಿರ್ಣಾಯಕ ವಿಭಾಗದಲ್ಲಿರುವಾಗ, ಪಿ1 ಮತ್ತೊಮ್ಮೆ ಲಾಕ್ ಅನ್ನು ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ ಆದರೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ (ಸಮಯ 5), ಇದು ಪಿ3 ಜೊತೆಗೆ ಕಾಯುವಿಕೆಯನ್ನು ತಿರುಗಿಸಲು ಒತ್ತಾಯಿಸುತ್ತದೆ. ಪಿ2 ನಿರ್ಣಾಯಕ ವಿಭಾಗವನ್ನು ಮುಗಿಸಿದ ನಂತರ ಮತ್ತು ಅನ್ಲಾಕ್ ಅನ್ನು ನೀಡಿದ ನಂತರ, ಪಿ1 ಮತ್ತು ಪಿ3 ಎರಡೂ ಏಕಕಾಲದಲ್ಲಿ ಅದನ್ನು ಮತ್ತೊಮ್ಮೆ ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸುತ್ತವೆ (ಸಮಯ 6). ಆದರೆ ಪಿ1, ಅದರ ವೇಗದ ಪ್ರವೇಶ ಸಮಯದೊಂದಿಗೆ ಮತ್ತೆ ಗೆಲ್ಲುತ್ತದೆ, ಹೀಗೆ ನಿರ್ಣಾಯಕ ವಿಭಾಗವನ್ನು (ಸಮಯ 7) ಪ್ರವೇಶಿಸುತ್ತದೆ. ಪಿ1 ಅಥವಾ ಪಿ2 ಒಂದನ್ನು ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸುವುದನ್ನು ನಿಲ್ಲಿಸುವವರೆಗೆ ಪಿ3ಗೆ ಬೀಗವನ್ನು ಪಡೆಯಲು ಸಾಧ್ಯವಾಗದ ಈ ಮಾದರಿಯು ಅನಿರ್ದಿಷ್ಟವಾಗಿ ಮುಂದುವರಿಯುತ್ತದೆ. ಕೆಲವು ಸಂದರ್ಭಗಳಲ್ಲಿ ಲಾಕ್ ಸ್ವಾಧೀನದಲ್ಲಿ ಸ್ವಲ್ಪ ಮಟ್ಟದ ನ್ಯಾಯಸಮ್ಮತತೆಯನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳುವ ಅಗತ್ಯವನ್ನು ಇದು ವಿವರಿಸುತ್ತದೆ. ಎಲ್ಲಾ ಲಾಕ್ಗಳು ಯಾವುದೇ ಮಟ್ಟದ ನ್ಯಾಯೋಚಿತತೆಯನ್ನು ಖಚಿತಪಡಿಸುವ ಕಾರ್ಯವಿಧಾನಗಳನ್ನು ಹೊಂದಿರುವುದಿಲ್ಲ, ಇದು ಮೇಲೆ ವಿವರಿಸಿದಂತೆಯೇ ಪರಿಸ್ಥಿತಿಗಳಿಗೆ ಸಂಭಾವ್ಯತೆಯನ್ನು ನೀಡುತ್ತದೆ. ಯಾವುದೇ ನ್ಯಾಯಸಮ್ಮತತೆಯ ಖಾತರಿಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸದ ಬೀಗಗಳ ಉದಾಹರಣೆಗಳಿಗಾಗಿ ಕೆಳಗಿನ ಬೀಗಗಳ ಹೋಲಿಕೆ ವಿಭಾಗವನ್ನು ನೋಡಿ. ಟಿಕೆಟ್ ಲಾಕ್ನ ಅನುಷ್ಠಾನ ಏಕರೂಪವಲ್ಲದ ಮೆಮೊರಿ ಆರ್ಕಿಟೆಕ್ಚರ್ (ಎನ್ಯುಎಂಎ) ವ್ಯವಸ್ಥೆಯಲ್ಲಿ, ಲಾಕ್ ಸ್ವಾಧೀನದ ಕೆಲವು ಮಟ್ಟದ ನ್ಯಾಯಸಮ್ಮತತೆಯನ್ನು ಖಾತರಿಪಡಿಸುವ ಲಾಕ್ ಅನುಷ್ಠಾನವನ್ನು ಹೊಂದಿರುವುದು ಮುಖ್ಯವಾಗಿದೆ. ಟಿಕೆಟ್ ಲಾಕ್ ಈ ಅಪೇಕ್ಷಿತ ಗುಣಲಕ್ಷಣವನ್ನು ಸೇರಿಸುವ ಸ್ಪಿನ್ಲಾಕ್ನ ಅನುಷ್ಠಾನವಾಗಿದೆ. ಈ ಕೆಳಗಿನ ಸೂಡೊಕೋಡ್ ಲಾಕ್ ಅನ್ನು ಪ್ರಾರಂಭಿಸುವ, ಲಾಕ್ ಅನ್ನು ಪಡೆದುಕೊಳ್ಳುವ ಮತ್ತು ಲಾಕ್ ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡುವ ಕಾರ್ಯಾಚರಣೆಗಳನ್ನು ತೋರಿಸುತ್ತದೆ. ಟಿಕೆಟ್ ಲಾಕ್ _ ಅಕ್ವೈರ್ಗೆ ಕರೆ ಕೋಡ್ನ ನಿರ್ಣಾಯಕ ವಿಭಾಗಕ್ಕೆ ಮುಂಚಿತವಾಗಿರುತ್ತದೆ ಮತ್ತು ಟಿಕೆಟ್ ಲಾಕ್ _ ಬಿಡುಗಡೆ ಅದನ್ನು ಅನುಸರಿಸುತ್ತದೆ. ಪ್ರತಿ ಪ್ರೊಸೆಸರ್ ಪ್ರತಿ ಪ್ರೊಸೆಸರ್ನ ಮೈ ಟಿಕೆಟ್ನ ಮೌಲ್ಯದ ಮೂಲಕ ತನ್ನ ಸರದಿಯ ಮೇಲೆ ನಿಗಾ ಇಡುತ್ತದೆ. ಯಾನ್ ಸೋಲಿಹಿನ್ನ ಸೂಡೊಕೋಡ್ ಉದಾಹರಣೆಯನ್ನು ರೇಖಾಚಿತ್ರದಲ್ಲಿ ಪಟ್ಟಿ ಮಾಡಲಾಗಿದೆ below.ticketLock_init (ಇಂಟ್ * ನೆಕ್ಸ್ಟ್ _ ಟಿಕೆಟ್, ಇಂಟ್ * ಈಗ _ ಸರ್ವಿಂಗ್) {* ಈಗ _ ಸರ್ವಿಂಗ್ = * ನೆಕ್ಸ್ಟ್ _ ಟಿಕೆಟ್ = 0;} ಟಿಕೆಟ್ ಲಾಕ್ _ ಅಕ್ವೈನ್ (ಇಂಟ್ * ನೆಕ್ಸ್ಟ್ _ ಟಿಕೆಟ್, ಇಂಟ್ * ಈಗ _ ಸರ್ವಿಂಗ್) {ಮೈ _ ಟಿಕೆಟ್ = ಫೆಚ್ _ ಮತ್ತು _ ಇಂಕ್ (ನೆಕ್ಸ್ಟ್ _ ಟಿಕೆಟ್); ಆದರೆ (* ಈಗ _ ಸರ್ವಿಂಗ್! ಪಡೆಯುವುದು ಮತ್ತು ಹೆಚ್ಚಳವನ್ನು ಪರಮಾಣು ರೀತಿಯಲ್ಲಿ ಮಾಡಲಾಗುತ್ತದೆ, ಇದರಿಂದಾಗಿ ಪ್ರವೇಶದಲ್ಲಿ ಯಾವುದೇ ಇತರ ಏಕಕಾಲೀನ ಪ್ರಯತ್ನಗಳಿಗೆ ಅವಕಾಶ ನೀಡುವುದಿಲ್ಲ ಎಂಬುದನ್ನು ಗಮನಿಸುವುದು ಮುಖ್ಯವಾಗಿದೆ. ಒಮ್ಮೆ ನನ್ನ ಟಿಕೆಟ್ ಅನ್ನು ಸ್ವೀಕರಿಸಿದ ನಂತರ, ಪ್ರತಿ ಥ್ರೆಡ್ ವೈಲ್ ಲೂಪ್ನಲ್ಲಿ ತಿರುಗುತ್ತದೆ, ಆದರೆ ಈಗ _ ಸರ್ವಿಂಗ್ ಅದರ ನನ್ನ ಟಿಕೆಟ್ಗೆ ಸಮನಾಗಿರುವುದಿಲ್ಲ. ಒಮ್ಮೆ ಈಗ _ ಸರ್ವಿಂಗ್ ನಿರ್ದಿಷ್ಟ ಥ್ರೆಡ್ನ ಮೈ _ ಟಿಕೆಟ್ಗೆ ಸಮನಾದಾಗ ಅವರಿಗೆ ಟಿಕೆಟ್ಲ್ಯಾಕ್ _ ಅಕ್ವೈರ್ () ನಿಂದ ಹಿಂತಿರುಗಲು ಅವಕಾಶ ನೀಡಲಾಗುತ್ತದೆ ಮತ್ತು ಕೋಡ್ನ ನಿರ್ಣಾಯಕ ವಿಭಾಗವನ್ನು ನಮೂದಿಸಿ. ಕೋಡ್ನ ನಿರ್ಣಾಯಕ ವಿಭಾಗದ ನಂತರ, ಥ್ರೆಡ್ ಟಿಕೆಟ್ ಲಾಕ್ ಬಿಡುಗಡೆ () ಅನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, ಇದು ಈಗ _ ಸರ್ವಿಂಗ್ ಅನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ. ಇದು ಮುಂದಿನ ಅನುಕ್ರಮವಾದ ಮೈ ಟಿಕೆಟ್ನೊಂದಿಗೆ ಥ್ರೆಡ್ ಅನ್ನು ಟಿಕೆಟ್ಲಾಕ್ಯಾಕ್ _ ಅಕ್ವೈರ್ () ನಿಂದ ನಿರ್ಗಮಿಸಲು ಮತ್ತು ನಿರ್ಣಾಯಕ ವಿಭಾಗವನ್ನು ನಮೂದಿಸಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಲಾಕ್ನಲ್ಲಿ ಥ್ರೆಡ್ ಆಗಮನದ ಕ್ರಮದಲ್ಲಿ ಮೈ ಟಿಕೆಟ್ ಮೌಲ್ಯಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳುವುದರಿಂದ, ಲಾಕ್ನ ನಂತರದ ಸ್ವಾಧೀನವು ಇದೇ ಕ್ರಮದಲ್ಲಿರುತ್ತದೆ ಎಂದು ಖಾತರಿಪಡಿಸಲಾಗಿದೆ. ಹೀಗಾಗಿ, ಲಾಕ್ ಸ್ವಾಧೀನದ ನ್ಯಾಯಸಮ್ಮತತೆಯನ್ನು ಖಾತ್ರಿಪಡಿಸಿಕೊಳ್ಳಲಾಗುತ್ತದೆ, ಇದು ಎಫ್. ಐ. ಎಫ್. ಓ ಆದೇಶವನ್ನು ಜಾರಿಗೊಳಿಸುತ್ತದೆ. ಈ ಕೆಳಗಿನ ಕೋಷ್ಟಕವು ನಿರ್ಣಾಯಕ ವಿಭಾಗಕ್ಕೆ ಪ್ರವೇಶಕ್ಕಾಗಿ ಸ್ಪರ್ಧಿಸುವ ನಾಲ್ಕು ಪ್ರೊಸೆಸರ್ಗಳನ್ನು (ಪಿ1, ಪಿ2, ಪಿ3, ಪಿ4) ಹೊಂದಿರುವ ವ್ಯವಸ್ಥೆಯಲ್ಲಿ ಟಿಕೆಟ್ ಲಾಕ್ ಕ್ರಿಯೆಯ ಉದಾಹರಣೆಯನ್ನು ತೋರಿಸುತ್ತದೆ. "ಆಕ್ಷನ್" ಅಂಕಣವನ್ನು ಅನುಸರಿಸಿ, ಮೇಲಿನ ಸೂಡೊಕೋಡ್ ಅನ್ನು ಆಧರಿಸಿದ ಫಲಿತಾಂಶವನ್ನು ಗಮನಿಸಬಹುದು. ಪ್ರತಿ ಸಾಲಿಗೆ, ತೋರಿಸಲಾದ ವೇರಿಯೇಬಲ್ ಮೌಲ್ಯಗಳು ಸೂಚಿಸಲಾದ ಕ್ರಿಯೆ (ಗಳು) ಪೂರ್ಣಗೊಂಡ ನಂತರ. ಈ ಉದಾಹರಣೆಯಿಂದ ಗಮನಿಸಬೇಕಾದ ಪ್ರಮುಖ ಅಂಶವೆಂದರೆ, ಎಲ್ಲಾ ನಾಲ್ಕು ಪ್ರೊಸೆಸರ್ಗಳು ಲಾಕ್ ಅನ್ನು ಪಡೆಯಲು ಮಾಡಿದ ಆರಂಭಿಕ ಪ್ರಯತ್ನಗಳು ಮೊದಲು ಬಂದವರಿಗೆ ಮಾತ್ರ ವಾಸ್ತವವಾಗಿ ಲಾಕ್ ದೊರೆಯುತ್ತದೆ. ನಂತರದ ಎಲ್ಲಾ ಪ್ರಯತ್ನಗಳು, ಮೊದಲನೆಯದು ಇನ್ನೂ ಲಾಕ್ ಅನ್ನು ಹಿಡಿದಿಟ್ಟುಕೊಂಡಿದ್ದರೂ, ನಿರ್ಣಾಯಕ ವಿಭಾಗದಲ್ಲಿ ತಮ್ಮ ಸರದಿಗಾಗಿ ಕಾಯುತ್ತಿರುವ ಪ್ರೊಸೆಸರ್ಗಳ ಸಾಲನ್ನು ರೂಪಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಇದರ ನಂತರ ಪ್ರತಿಯೊಬ್ಬರು ಪ್ರತಿಯಾಗಿ ಲಾಕ್ ಅನ್ನು ಪಡೆಯುತ್ತಾರೆ, ಹಿಂದಿನ ಧಾರಕನು ಹೊರಟುಹೋದಂತೆ ಮುಂದಿನ ಸಾಲಿನಲ್ಲಿ ಅದನ್ನು ಪಡೆಯಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಇತರ ಪ್ರೊಸೆಸರ್ಗಳು ಲಾಕ್ ಸ್ವಾಧೀನ/ಬಿಡುಗಡೆಗಳ ಅನುಕ್ರಮದಲ್ಲಿ ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಮತ್ತೊಂದು ಪ್ರೊಸೆಸರ್ ಬರಬಹುದು ಮತ್ತು ಅದರ ಸರದಿಗಾಗಿ ಕಾಯಬಹುದು ಎಂಬುದನ್ನು ಸಹ ಗಮನಿಸಿ. ಲಾಕ್ ಅನ್ನು ಬಳಸುವ ಮೊದಲು ಮೊದಲ ಹಂತವೆಂದರೆ ಎಲ್ಲಾ ಲಾಕ್ ವೇರಿಯೇಬಲ್ಗಳನ್ನು (ಸಾಲು 1) ಪ್ರಾರಂಭಿಸುವುದು. ನೆಕ್ಸ್ಟ್ _ ಟಿಕೆಟ್ ಮತ್ತು ನೌ _ ಸರ್ವಿಂಗ್ ಅನ್ನು 0 ಗೆ ಪ್ರಾರಂಭಿಸುವುದರಿಂದ ಲಾಕ್ ಅನ್ನು ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸುವ ಮೊದಲ ಥ್ರೆಡ್ ಟಿಕೆಟ್ 0 ಅನ್ನು ಪಡೆಯುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸುತ್ತದೆ, ಹೀಗಾಗಿ ಅದರ ಟಿಕೆಟ್ ಈಗ _ ಸರ್ವಿಂಗ್ಗೆ ಹೊಂದಿಕೆಯಾಗುವುದರಿಂದ ಲಾಕ್ ಅನ್ನು ಪಡೆಯುತ್ತದೆ. ಆದ್ದರಿಂದ ಪಿ1 ಲಾಕ್ ಅನ್ನು ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸಿದಾಗ ಅದು ತಕ್ಷಣವೇ ಯಶಸ್ವಿಯಾಗುತ್ತದೆ ಮತ್ತು ನೆಕ್ಸ್ಟ್ ಟಿಕೆಟ್ ಅನ್ನು 1 (ಸಾಲು 2) ಗೆ ಹೆಚ್ಚಿಸಲಾಗುತ್ತದೆ. ಪಿ3 ಬೀಗವನ್ನು ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸಿದಾಗ ಅದು ತನ್ನ ಮೈ ಟಿಕೆಟ್ಗೆ 1 ಅನ್ನು ಪಡೆಯುತ್ತದೆ, ಮುಂದಿನ ಟಿಕೆಟ್ ಅನ್ನು 2 ಕ್ಕೆ ಹೆಚ್ಚಿಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಈಗ ಸೇವೆ ಸಲ್ಲಿಸುತ್ತಿರುವುದು ಇನ್ನೂ 0 ಆಗಿರುವುದರಿಂದ ಅದು ಕಾಯಬೇಕಾಗುತ್ತದೆ (ಸಾಲು 3). ಮುಂದೆ, ಪಿ2 ಲಾಕ್ ಅನ್ನು ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸಿದಾಗ ಅದು ಅದರ ಮೈ ಟಿಕೆಟ್ಗೆ 2 ಅನ್ನು ಪಡೆಯುತ್ತದೆ, ನೆಕ್ಸ್ಟ್ ಟಿಕೆಟ್ ಅನ್ನು 3 ಕ್ಕೆ ಹೆಚ್ಚಿಸಲಾಗುತ್ತದೆ, ಮತ್ತು ಈಗ ಸೇವೆ ಇನ್ನೂ 0 ಆಗಿರುವುದರಿಂದ ಅದು ಕಾಯಬೇಕಾಗುತ್ತದೆ (ಸಾಲು 4). ಪಿ1 ಈಗ 1ಕ್ಕೆ ಈಗ _ ಸರ್ವಿಂಗ್ ಅನ್ನು ಹೆಚ್ಚಿಸುವ ಮೂಲಕ ಲಾಕ್ ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡುತ್ತದೆ, ಹೀಗಾಗಿ ಪಿ3 ಅದರ ಮೈ _ ಟಿಕೆಟ್ ಮೌಲ್ಯ 1 (ಸಾಲು 5) ಕಾರಣ ಅದನ್ನು ಪಡೆಯಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ. ಈಗ ಪಿ3 ಬೀಗವನ್ನು ಬಿಡುಗಡೆ ಮಾಡುತ್ತದೆ, ಈಗ 2ಕ್ಕೆ ಹೆಚ್ಚಿಸುತ್ತದೆ, ಇದು ಪಿ2ಗೆ ಅದನ್ನು ಪಡೆಯಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ (ಸಾಲು 6). ಪಿ2ಗೆ ಬೀಗವಿದ್ದರೂ, ಪಿ4 ಅದನ್ನು ಪಡೆಯಲು ಪ್ರಯತ್ನಿಸುತ್ತದೆ, ಮೈ ಟಿಕೆಟ್ ಮೌಲ್ಯವನ್ನು 3 ಪಡೆಯುತ್ತದೆ, ಮುಂದಿನ ಟಿಕೆಟ್ ಮೌಲ್ಯವನ್ನು 4ಕ್ಕೆ ಹೆಚ್ಚಿಸುತ್ತದೆ, ಮತ್ತು ಈಗ ಸೇವೆ ಇನ್ನೂ 2 ಆಗಿರುವುದರಿಂದ ಕಾಯಬೇಕಾಗುತ್ತದೆ (ಸಾಲು 7). ಪಿ2 ಬೀಗವನ್ನು ಬಿಡುಗಡೆ ಮಾಡಿದಾಗ, ಅದು ಈಗ 3ಕ್ಕೆ ಏರುತ್ತದೆ, ಇದು ಪಿ4ಗೆ ಅದನ್ನು ಪಡೆಯಲು ಅನುವು ಮಾಡಿಕೊಡುತ್ತದೆ (ಸಾಲು 8). ಅಂತಿಮವಾಗಿ, ಪಿ4 ಲಾಕ್ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡುತ್ತದೆ, ಈಗ 4ಕ್ಕೆ (ಸಾಲು 9) ಹೆಚ್ಚಿಸುತ್ತದೆ. ಪ್ರಸ್ತುತ ಯಾವುದೇ ಕಾಯುವ ದಾರಗಳು ಈ ಟಿಕೆಟ್ ಸಂಖ್ಯೆಯನ್ನು ಹೊಂದಿಲ್ಲ, ಆದ್ದರಿಂದ ಬರುವ ಮುಂದಿನ ದಾರವು ಅದರ ಟಿಕೆಟ್ಗೆ 4 ಅನ್ನು ಪಡೆಯುತ್ತದೆ ಮತ್ತು ತಕ್ಷಣವೇ ಲಾಕ್ ಅನ್ನು ಪಡೆಯುತ್ತದೆ. ಲಾಕ್ಗಳ ಹೋಲಿಕೆ ಲಿನಕ್ಸ್ ಕರ್ನಲ್ ಅನುಷ್ಠಾನವು ಆಧುನಿಕ ಯಂತ್ರಗಳಲ್ಲಿನ ಸರಳವಾದ ಟೆಸ್ಟ್-ಅಂಡ್-ಸೆಟ್ ಅಥವಾ ವಿನಿಮಯ ಆಧಾರಿತ ಸ್ಪಿನ್ಲಾಕ್ ಕ್ರಮಾವಳಿಗಳಿಗಿಂತ ಕಡಿಮೆ ಸುಪ್ತತೆಯನ್ನು ಹೊಂದಿರಬಹುದು. ವಿವಿಧ ರೀತಿಯ ಸ್ಪಿನ್ ಆಧಾರಿತ ಲಾಕ್ಗಳನ್ನು ಹೋಲಿಸುವಾಗ ಕೆಳಗಿನ ಕೋಷ್ಟಕವನ್ನು ಪರಿಗಣಿಸಿ. ಹೆಚ್ಚು ಮೂಲಭೂತ ಲಾಕಿಂಗ್ ಕಾರ್ಯವಿಧಾನಗಳು ಸುಧಾರಿತ ಲಾಕಿಂಗ್ ಕಾರ್ಯವಿಧಾನಗಳಿಗಿಂತ ಕಡಿಮೆ ಅನಪೇಕ್ಷಿತ ವಿಳಂಬವನ್ನು ಹೊಂದಿವೆ. ಪ್ರಯೋಜನಗಳು ಇತರ ಸ್ಪಿನ್ಲಾಕ್ ಕ್ರಮಾವಳಿಗಳಿಗಿಂತ ಟಿಕೆಟ್ ಲಾಕ್ನ ಒಂದು ಪ್ರಯೋಜನವೆಂದರೆ ಅದು ನ್ಯಾಯೋಚಿತವಾಗಿದೆ. ಡ್ಯೂಕ್ ಟಿಕೆಟ್ ಪೂರ್ಣಾಂಕ ಹೆಚ್ಚಾದಂತೆ ಕಾಯುವ ಎಳೆಗಳನ್ನು ಮೊದಲು-ಮೊದಲು-ಔಟ್ ಆಧಾರದ ಮೇಲೆ ಸಂಸ್ಕರಿಸಲಾಗುತ್ತದೆ, ಹೀಗಾಗಿ ಹಸಿವನ್ನು ತಡೆಯುತ್ತದೆ. ಒಂದು ಸಮಯದಲ್ಲಿ ಕೇವಲ ಒಂದು ದಾರವು ನಿರ್ಣಾಯಕ ವಿಭಾಗವನ್ನು ಪ್ರವೇಶಿಸಲು ಪ್ರಯತ್ನಿಸುವುದರಿಂದ ಟಿಕೆಟ್ ಲಾಕ್ ಅಲ್ಗಾರಿದಮ್ ಗುಡುಗು ಗುಂಪಿನ ಸಮಸ್ಯೆಯನ್ನು ಸಹ ತಡೆಯುತ್ತದೆ. ಸಂಗ್ರಹವು ಒಂದು ಸಮಸ್ಯೆಯಾಗಿರಬೇಕಾಗಿಲ್ಲ, ಏಕೆಂದರೆ ಎಲ್ಲಾ ಥ್ರೆಡ್ಗಳು ಒಂದು ವೇರಿಯೇಬಲ್ನಲ್ಲಿ ತಿರುಗುತ್ತವೆ, ಒಂದು ರಚನೆಯ ಪ್ರತ್ಯೇಕ ಅಂಶಗಳ ಮೇಲೆ ಥ್ರೆಡ್ಗಳನ್ನು ತಿರುಗಿಸುವ ಅರೇ-ಆಧಾರಿತ ಕ್ಯೂಯಿಂಗ್ ಲಾಕ್ಸ್ (ಎಬಿಕ್ಯುಎಲ್) ಗಿಂತ ಭಿನ್ನವಾಗಿ. ಅನಾನುಕೂಲಗಳು ಒಂದು ಅನಾನುಕೂಲವೆಂದರೆ, ಲಾಕ್ ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡುವ ಮೊದಲು ಎಲ್ಲಾ ಎಳೆಗಳು ತಿರುಗುತ್ತಿರುವ ಮೌಲ್ಯವನ್ನು ಓದಲು ಮತ್ತು ಪರೀಕ್ಷಿಸಲು ಅಗತ್ಯವಾದ ಹೆಚ್ಚುವರಿ ಸೂಚನೆಗಳ ಕಾರಣದಿಂದಾಗಿ ಹೆಚ್ಚಿನ ಅನಪೇಕ್ಷಿತ ವಿಳಂಬತೆ ಇರುತ್ತದೆ. ಟಿಕೆಟ್ ಲಾಕ್ನ ಮತ್ತೊಂದು ಪ್ರಮುಖ ಅನಾನುಕೂಲವೆಂದರೆ ಅದು ಅಳೆಯಲಾಗುವುದಿಲ್ಲ. ಟಿಕೆಟ್ ಲಾಕ್ ವ್ಯವಸ್ಥೆಗೆ ಪ್ರೊಸೆಸರ್ಗಳನ್ನು ಸೇರಿಸಿದಂತೆ, ಕಾರ್ಯಕ್ಷಮತೆಯು ಘಾತೀಯವಾಗಿ ಕ್ಷೀಣಿಸುತ್ತದೆ ಎಂದು ಸಂಶೋಧನೆ ಸೂಚಿಸಿದೆ. ಮತ್ತೊಂದು ಸಮಸ್ಯೆಯು ಲಾಕ್ ಅನ್ನು ಬಿಡುಗಡೆ ಮಾಡುವುದರಿಂದ ಬರುತ್ತದೆ. ಎಲ್ಲಾ ಥ್ರೆಡ್ಗಳು ಒಂದೇ ವೇರಿಯೇಬಲ್ನ ಮೇಲೆ ತಿರುಗುತ್ತಿವೆ, ಆದ್ದರಿಂದ ಲಾಕ್ ಬಿಡುಗಡೆಯಾದಾಗ η (p) ಅಮಾನ್ಯತೆಗಳು (ಹಾಗೆಯೇ η (p) ಸ್ವಾಧೀನಗಳು) ಇರುತ್ತವೆ. ಏಕೆಂದರೆ ಎಲ್ಲಾ ಎಳೆಗಳು ತಮ್ಮ ಬ್ಲಾಕ್ ಅನ್ನು ಕ್ಯಾಶ್ಗೆ ಮರುಲೋಡ್ ಮಾಡಬೇಕು ಮತ್ತು ನಿರ್ಣಾಯಕ ವಿಭಾಗಕ್ಕೆ ಅವುಗಳ ಪ್ರವೇಶವನ್ನು ನಿರ್ಧರಿಸಲು ಪರೀಕ್ಷೆಯನ್ನು ನಡೆಸಬೇಕು. ಟಿಕೆಟ್ ಲಾಕ್ ಅನ್ನು 1991 ರಲ್ಲಿ ಮೆಲ್ಲರ್-ಕ್ರಮ್ಮಿ ಮತ್ತು ಸ್ಕಾಟ್ ಪರಿಚಯಿಸಿದರು. ಈ ಅಲ್ಗಾರಿದಮ್ ಅನ್ನು ಅದರ ಅನುಕೂಲಗಳಿಂದಾಗಿ 2008 ರಲ್ಲಿ ಲಿನಕ್ಸ್ ಕರ್ನಲ್ಗೆ ಪರಿಚಯಿಸಲಾಯಿತು, ಆದರೆ ಅದರ ಅನಾನುಕೂಲತೆಗಳನ್ನು ಹೊಂದಿರುವ ಪ್ಯಾರಾವರ್ಟುವಲೈಸ್ಡ್ ಪರಿಸರದಲ್ಲಿ ಕೈಬಿಡಲಾಯಿತು. , ಪ್ಯಾರಾವರ್ಟುವಲೈಸೇಷನ್ನಲ್ಲಿ ಟಿಕೆಟ್ ಲಾಕ್ಗಳ ಬಳಕೆಯನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವ ಕೆಲಸ ಪ್ರಗತಿಯಲ್ಲಿದೆ. ಮಾರ್ಚ್ 2015 ರ ಹೊತ್ತಿಗೆ ಈ ರೀತಿಯ ಲಾಕಿಂಗ್ ಯೋಜನೆಯನ್ನು ರೆಡ್ ಹ್ಯಾಟ್ ಎಂಟರ್ಪ್ರೈಸ್ ಲಿನಕ್ಸ್ ತಮ್ಮ ಸಿಸ್ಟಮ್ನಲ್ಲಿ ಮರುಬಳಕೆ ಮಾಡಿದೆ. ಲ್ಯಾಂಪೋರ್ಟ್ನ ಬೇಕರಿ ಅಲ್ಗಾರಿದಮ್ ಇದೇ ರೀತಿಯ "ಟಿಕೆಟ್" ಅಥವಾ "ಕೌಂಟರ್" ಪರಿಕಲ್ಪನೆಯನ್ನು ಬಳಸುತ್ತದೆ ಆದರೆ ಪರಮಾಣು ಯಂತ್ರಾಂಶ ಕಾರ್ಯಾಚರಣೆಗಳ ಬಳಕೆಯನ್ನು ಮಾಡುವುದಿಲ್ಲ. ಇದನ್ನು ಕಾರ್ಯಕ್ಷಮತೆಗಿಂತ ಹೆಚ್ಚಾಗಿ ದೋಷ ಸಹಿಷ್ಣುತೆಗಾಗಿ ವಿನ್ಯಾಸಗೊಳಿಸಲಾಗಿದೆ. ಎಲ್ಲಾ ಪ್ರೊಸೆಸರ್ಗಳು ಬಿಡುಗಡೆ ಕೌಂಟರ್ ಅನ್ನು ನಿರಂತರವಾಗಿ ಪರಿಶೀಲಿಸುವ ಬದಲು, ಬೇಕರಿ ಲಾಕ್ ತನ್ನ ಸಹವರ್ತಿಗಳ ಟಿಕೆಟ್ಗಳನ್ನು ಪರೀಕ್ಷಿಸಲು ತಿರುಗುತ್ತದೆ. ಕ್ಯೂ-ಆಧಾರಿತ ಸ್ಪಿನ್ ಲಾಕ್ಗಳು ವೇಟರ್ಗಳ ಸಾಲನ್ನು ನಿರ್ವಹಿಸುವ ಮೂಲಕ ಮತ್ತು ಅನ್ಲಾಕ್ ಕಾರ್ಯಾಚರಣೆಯ ಸಮಯದಲ್ಲಿ ಮೊದಲ ವೇಟರ್ಗೆ ಲಾಕ್ ನೀಡುವ ಮೂಲಕ ನ್ಯಾಯಯುತತೆಯನ್ನು ಖಾತರಿಪಡಿಸುತ್ತವೆ. ಟಿಕೆಟ್ ಲಾಕ್ ಅನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸಲು ಫೆಚ್-ಅಂಡ್-ಇಂಕ್ರಿಮೆಂಟ್ ಬದಲಿಗೆ ಬಳಸಬಹುದಾದ ಮತ್ತೊಂದು ಪರಮಾಣು ಸೂಚನೆಯಾದ ಫೆಚ್-ಅಂಡ್-ಆಡ್ ಅನ್ನು ಸಹ ನೋಡಿ.