Event dispatching thread
ಈವೆಂಟ್ ಡಿಸ್ಪಾಚಿಂಗ್ ಥ್ರೆಡ್ (ಇಡಿಟಿ) ಎಂಬುದು ಜಾವಾದಲ್ಲಿ ಅಬ್ಸ್ಟ್ರಾಕ್ಟ್ ವಿಂಡೋ ಟೂಲ್ಕಿಟ್ (ಎಡಬ್ಲ್ಯೂಟಿ) ಗ್ರಾಫಿಕಲ್ ಯೂಸರ್ ಇಂಟರ್ಫೇಸ್ ಈವೆಂಟ್ ಕ್ಯೂನಿಂದ ಈವೆಂಟ್ಗಳನ್ನು ಪ್ರಕ್ರಿಯೆಗೊಳಿಸಲು ಬಳಸುವ ಹಿನ್ನೆಲೆ ಥ್ರೆಡ್ ಆಗಿದೆ. ಇದು ಈವೆಂಟ್-ಚಾಲಿತ ಪ್ರೋಗ್ರಾಮಿಂಗ್ನ ಸಾಮಾನ್ಯ ಪರಿಕಲ್ಪನೆಯ ಒಂದು ಉದಾಹರಣೆಯಾಗಿದೆ, ಇದು ಜಾವಾವನ್ನು ಹೊರತುಪಡಿಸಿ ಇತರ ಅನೇಕ ಸಂದರ್ಭಗಳಲ್ಲಿ ಜನಪ್ರಿಯವಾಗಿದೆ, ಉದಾಹರಣೆಗೆ, ವೆಬ್ ಬ್ರೌಸರ್ಗಳು ಅಥವಾ ವೆಬ್ ಸರ್ವರ್ಗಳು. ಈವೆಂಟ್ಗಳು ಪ್ರಾಥಮಿಕವಾಗಿ ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ ಘಟಕಗಳು ತಮ್ಮನ್ನು ಪುನಃ ರಚಿಸಿಕೊಳ್ಳಲು ಕಾರಣವಾಗುವ ಈವೆಂಟ್ಗಳನ್ನು ನವೀಕರಿಸುತ್ತವೆ, ಅಥವಾ ಮೌಸ್ ಅಥವಾ ಕೀಬೋರ್ಡ್ನಂತಹ ಇನ್ಪುಟ್ ಸಾಧನಗಳಿಂದ ಇನ್ಪುಟ್ ಈವೆಂಟ್ಗಳಾಗಿವೆ. ಎ. ಡಬ್ಲ್ಯೂ. ಟಿ ಏಕ-ಥ್ರೆಡ್ ಚಿತ್ರಕಲೆಯ ಮಾದರಿಯನ್ನು ಬಳಸುತ್ತದೆ, ಇದರಲ್ಲಿ ಎಲ್ಲಾ ಪರದೆಯ ನವೀಕರಣಗಳನ್ನು ಒಂದೇ ಥ್ರೆಡ್ನಿಂದ ನಿರ್ವಹಿಸಬೇಕು. ಈವೆಂಟ್ ರವಾನೆ ಥ್ರೆಡ್ ಮಾತ್ರ ಗೋಚರ ಬಳಕೆದಾರ ಇಂಟರ್ಫೇಸ್ ಘಟಕಗಳ ದೃಶ್ಯ ಸ್ಥಿತಿಯನ್ನು ನವೀಕರಿಸಲು ಮಾನ್ಯವಾದ ಥ್ರೆಡ್ ಆಗಿದೆ. ಇತರ ಎಳೆಗಳಿಂದ ಗೋಚರಿಸುವ ಘಟಕಗಳನ್ನು ನವೀಕರಿಸುವುದು ಸ್ವಿಂಗ್ ಅನ್ನು ಬಳಸುವ ಜಾವಾ ಪ್ರೋಗ್ರಾಂಗಳಲ್ಲಿನ ಅನೇಕ ಸಾಮಾನ್ಯ ದೋಷಗಳ ಮೂಲವಾಗಿದೆ. ಈವೆಂಟ್ ರವಾನೆ ದಾರವನ್ನು ಅಡೋಬ್ ಫ್ಲ್ಯಾಶ್ನಲ್ಲಿ ಪ್ರೈಮೋರ್ಡಿಯಲ್ ವರ್ಕರ್ ಮತ್ತು ಎಸ್. ಡಬ್ಲ್ಯೂ. ಟಿ,. ನೆಟ್ ಫ್ರೇಮ್ವರ್ಕ್ ಮತ್ತು ಆಂಡ್ರಾಯ್ಡ್ನಲ್ಲಿ ಯುಐ ಥ್ರೆಡ್ ಎಂದು ಕರೆಯಲಾಗುತ್ತದೆ. GUI ಪ್ರವೇಶಗಳನ್ನು ಕ್ರಮಬದ್ಧಗೊಳಿಸಲು ಸಂದೇಶ ಲೂಪ್ ಒಂದು ಸಾಫ್ಟ್ವೇರ್ ಅಪ್ಲಿಕೇಶನ್ ಸಾಮಾನ್ಯವಾಗಿ ಅನೇಕ ಎಳೆಗಳನ್ನು ಮತ್ತು ಒಂದೇ GIT ದತ್ತಾಂಶ ರಚನೆಯನ್ನು ಹೊಂದಿರುತ್ತದೆ. ಇದರರ್ಥ ಜಿಐಟಿ ಹಂಚಿಕೆಯ ದತ್ತಾಂಶ ರಚನೆಯಾಗಿದೆ ಮತ್ತು ಒಂದು ಸಮಯದಲ್ಲಿ ಕೇವಲ ಒಂದು ಥ್ರೆಡ್ ಮಾತ್ರ ಅದನ್ನು ಪ್ರವೇಶಿಸುತ್ತದೆ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ಕೆಲವು ಸಿಂಕ್ರೊನೈಸೇಶನ್ ಅಗತ್ಯವಿದೆ. ಎಡಬ್ಲ್ಯೂಟಿ ಮತ್ತು ಸ್ವಿಂಗ್ ಜಿ. ಯು. ಐ ಘಟಕಗಳನ್ನು ರಚಿಸಲು ಮತ್ತು ಪ್ರವೇಶಿಸಲು (ಥ್ರೆಡ್ ಅಸುರಕ್ಷಿತ) ವಿಧಾನಗಳನ್ನು ಬಹಿರಂಗಪಡಿಸಿದರೂ ಮತ್ತು ಈ ವಿಧಾನಗಳು ಎಲ್ಲಾ ಅಪ್ಲಿಕೇಶನ್ ಥ್ರೆಡ್ಗಳಿಗೆ ಗೋಚರಿಸುತ್ತವೆ, ಅದೇ ರೀತಿ ಇತರ ಜಿ. ಯು. ಐ ಚೌಕಟ್ಟುಗಳಲ್ಲಿ, ಒಂದೇ ಒಂದು, ಈವೆಂಟ್ ಡಿಸ್ಪಾಚಿಂಗ್ ಥ್ರೆಡ್ಗೆ ಮಾತ್ರ ಈ ವಿಧಾನಗಳನ್ನು ಕಾರ್ಯಗತಗೊಳಿಸುವ ಹಕ್ಕಿದೆ. ಪ್ರೋಗ್ರಾಮರ್ಗಳು ಆಗಾಗ್ಗೆ ಈ ಅಗತ್ಯವನ್ನು ತಪ್ಪಿಸಿಕೊಳ್ಳುವುದರಿಂದ, ಅಂತಹ ಕೋಡಿಂಗ್ ತಪ್ಪನ್ನು ತಡೆಗಟ್ಟಲು, ಈವೆಂಟ್ ಡಿಸ್ಪ್ಯಾಚ್ ಥ್ರೆಡ್ನೊಳಗೆ ಕಾರ್ಯನಿರ್ವಹಿಸದಿದ್ದಾಗ ಯಾವುದೇ ಸ್ವಿಂಗ್ ಘಟಕವನ್ನು ತ್ವರಿತಗೊಳಿಸಲು ನಿರಾಕರಿಸುವಷ್ಟು ಮಟ್ಟಿಗೆ ಪದಾರ್ಥದಂತಹ ಥರ್ಡ್-ಪಾರ್ಟಿ ಲುಕ್ ಅಂಡ್ ಫೀಲ್ಸ್ ಹೋಗುತ್ತದೆ. ಜಿ. ಯು. ಐ. ಗೆ ಪ್ರವೇಶವನ್ನು ಕ್ರಮಬದ್ಧಗೊಳಿಸಲಾಗಿದೆ ಮತ್ತು ಇತರ ಥ್ರೆಡ್ಗಳು ಇ. ಡಿ. ಟಿ ಸಂದೇಶ ಸರತಿಯ ಮೂಲಕ ಇ. ಡಿ. ಟಿ. ಯಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಕೆಲವು ಕೋಡ್ಗಳನ್ನು ಸಲ್ಲಿಸಬಹುದು. ಅಂದರೆ, ಇತರ GUI ಚೌಕಟ್ಟುಗಳಂತೆಯೇ, ಈವೆಂಟ್ ಡಿಸ್ಪಾಚಿಂಗ್ ಥ್ರೆಡ್ ತನ್ನ ಜೀವನವನ್ನು ಪಂಪ್ ಮಾಡುವ ಸಂದೇಶಗಳನ್ನು ಕಳೆಯುತ್ತದೆಃ ಇದು GUI ಮೂಲಕ ನಿರ್ವಹಿಸಬೇಕಾದ ಕ್ರಿಯೆಗಳ ಸಂದೇಶದ ಸಾಲನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ. ಈ ವಿನಂತಿಗಳನ್ನು ವ್ಯವಸ್ಥೆಯ ಮೂಲಕ ಮತ್ತು ಯಾವುದೇ ಅಪ್ಲಿಕೇಶನ್ ಥ್ರೆಡ್ ಮೂಲಕ ಸರತಿಗೆ ಸಲ್ಲಿಸಲಾಗುತ್ತದೆ. ಇಡಿಟಿ ಅವುಗಳನ್ನು ಒಂದರ ನಂತರ ಒಂದರಂತೆ ಬಳಸುತ್ತದೆ ಮತ್ತು ಜಿಯುಐ ಘಟಕಗಳನ್ನು ನವೀಕರಿಸುವ ಮೂಲಕ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತದೆ. ಸಂದೇಶಗಳು ಸುಪರಿಚಿತ ಕ್ರಿಯೆಗಳಾಗಿರಬಹುದು ಅಥವಾ ಇ. ಡಿ. ಟಿ. ಮೂಲಕ ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕಾದ ಬಳಕೆದಾರ-ವಿಧಾನಗಳ ಉಲ್ಲೇಖಗಳಾದ ಕಾಲ್ಬ್ಯಾಕ್ಗಳನ್ನು ಒಳಗೊಂಡಿರಬಹುದು. ಎಲ್ಲಾ ಸಂದೇಶಗಳ ಮೇಲೆ ವಿಧಿಸಲಾದ ಪ್ರಮುಖ ಅವಶ್ಯಕತೆಯೆಂದರೆ, GUI ಪ್ರತಿಕ್ರಿಯಾತ್ಮಕವಾಗಿರಲು ಅವುಗಳನ್ನು ತ್ವರಿತವಾಗಿ ಕಾರ್ಯಗತಗೊಳಿಸಬೇಕು. ಇಲ್ಲದಿದ್ದರೆ, ಸಂದೇಶದ ಲೂಪ್ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗುತ್ತದೆ ಮತ್ತು GUI ಘನೀಕರಣವನ್ನು ಅನುಭವಿಸಲಾಗುತ್ತದೆ. ಇಡಿಟಿಗೆ ಬಳಕೆದಾರರ ಕೋಡ್ ಅನ್ನು ಸಲ್ಲಿಸುವುದು ಇಡಿಟಿಗೆ ಕೋಡ್ ಅನ್ನು ಸಲ್ಲಿಸಲು ಮತ್ತು ಲೂಪ್ ಅನ್ನು ನಿರ್ಬಂಧಿಸದೆ ಸುದೀರ್ಘ ಕಾರ್ಯಗಳನ್ನು ನಿರ್ವಹಿಸಲು ವಿವಿಧ ಪರಿಹಾರಗಳಿವೆ. ಕಾಂಪೊನೆಂಟ್ ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲರ್ಗಳು (ಕೇಳುಗರು) ಜಿ. ಯು. ಐ ಘಟಕಗಳು ಕೇಳುಗರು ಎಂದು ಕರೆಯಲ್ಪಡುವ ಕಾಲ್ಬ್ಯಾಕ್ಗಳ ಪಟ್ಟಿಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತವೆ, ಇವು ಘಟಕಗಳನ್ನು ರಚಿಸಿದಾಗ ಸಾಮಾನ್ಯವಾಗಿ ತುಂಬಿರುತ್ತವೆ. ಬಳಕೆದಾರರು ಘಟಕಗಳನ್ನು ಹೇಗಾದರೂ ಪ್ರಚೋದಿಸಿದಾಗ (ಗುಂಡಿಯನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿದಾಗ, ಮೌಸ್ ಅನ್ನು ಸರಿಸಲಾಗುತ್ತದೆ, ಐಟಂ ಅನ್ನು ಆಯ್ಕೆ ಮಾಡಲಾಗುತ್ತದೆ, ಫೋಕಸ್ ಕಳೆದುಹೋಗುತ್ತದೆ, ಘಟಕವನ್ನು ಮರುಗಾತ್ರಗೊಳಿಸಲಾಗುತ್ತದೆ ಮತ್ತು ಹೀಗೆ) ಕೇಳುಗರನ್ನು ಇಡಿಟಿ ಕಾರ್ಯಗತಗೊಳಿಸುತ್ತದೆ. ನಿಯತಕಾಲಿಕವಾಗಿ ಅಥವಾ ನಿರ್ದಿಷ್ಟ ಸಮಯದಲ್ಲಿ GUI ಅನ್ನು ಪ್ರವೇಶಿಸುವ/ಮಾರ್ಪಡಿಸಬೇಕಾದ ಸಣ್ಣ ಕಾರ್ಯಗಳಿಗಾಗಿ, javax.swing.Timer ಅನ್ನು ಬಳಸಲಾಗುತ್ತದೆ. ಇದನ್ನು ಅದೃಶ್ಯವಾದ ಜಿ. ಯು. ಐ ಘಟಕವೆಂದು ಪರಿಗಣಿಸಬಹುದು, ಇದರ ಕೇಳುಗರು ನಿರ್ದಿಷ್ಟ ಸಮಯದಲ್ಲಿ (ಗಳಲ್ಲಿ) ಗುಂಡು ಹಾರಿಸಲು ನೋಂದಾಯಿಸಿಕೊಳ್ಳುತ್ತಾರೆ. ಸಮಾನಾಂಕಗಳು System.Windows.Forms.Timer-. NET ಫ್ರೇಮ್ವರ್ಕ್ flash.utils.Timer-ಇತರ ಥ್ರೆಡ್ಗಳಿಂದ ಅಡೋಬ್ ಫ್ಲ್ಯಾಶ್ ವಿನಂತಿಗಳು ಇತರ ಅಪ್ಲಿಕೇಶನ್ ಥ್ರೆಡ್ಗಳು ಸಹಾಯಕ ತರಗತಿಗಳ ಮೂಲಕ (ಅಥವಾ ನೀವು AWT ಮಾಡುತ್ತಿದ್ದರೆ) ಥ್ರೆಡ್ ಅನ್ನು ಕಳುಹಿಸುವ ಸಂದರ್ಭದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸಲು ಕೆಲವು ಕೋಡ್ ಅನ್ನು ರವಾನಿಸಬಹುದು. ಸಲ್ಲಿಸಿದ ಕೋಡ್ ಅನ್ನು ವಸ್ತುವಿನೊಂದಿಗೆ ಸುತ್ತಬೇಕು. ಈ ವರ್ಗಗಳ ಎರಡು ವಿಧಾನಗಳು ಅನುಮತಿಸುತ್ತವೆಃ ಸಿಂಕ್ರೊನಸ್ ಕೋಡ್ ಎಕ್ಸಿಕ್ಯುಷನ್ (ಅಥವಾ) ಮತ್ತು ಅಸಿಂಕ್ರೊನಸ್ ಕೋಡ್ ಎಕ್ಸಿಕ್ಯುಷನ್ (ಅಥವಾ) ಈವೆಂಟ್ ರವಾನೆ ಥ್ರೆಡ್ನಿಂದ. ಈವೆಂಟ್ ರವಾನೆ ದಾರದಿಂದ ಇನ್ವೋಕ್ ಆಂಡ್ ವೈಟ್ () ವಿಧಾನವನ್ನು ಎಂದಿಗೂ ಕರೆಯಬಾರದು-ಇದು ಒಂದು ವಿನಾಯಿತಿಯನ್ನು ನೀಡುತ್ತದೆ. ಪ್ರಸ್ತುತ ಥ್ರೆಡ್ ಈವೆಂಟ್ ರವಾನೆ ಥ್ರೆಡ್ ಆಗಿದೆಯೇ ಎಂದು ನಿರ್ಧರಿಸಲು ವಿಧಾನ ಅಥವಾ ಕರೆ ಮಾಡಬಹುದು. ಇ. ಡಿ. ಟಿ. ಗೆ ಇನ್ವೋಕ್ ಲೇಟರ್ ಮತ್ತು ಇನ್ವೋಕ್ ಆಂಡ್ ವೇಟ್ ಮೂಲಕ ಸರಬರಾಜು ಮಾಡಲಾದ ಕೋಡ್ ಘನೀಕರಿಸುವುದನ್ನು ತಡೆಯಲು ಸಾಧ್ಯವಾದಷ್ಟು ಬೇಗ ಇರಬೇಕು. ಅವು ಸಾಮಾನ್ಯವಾಗಿ ಸುದೀರ್ಘವಾದ ಗಣನೆಯ ಫಲಿತಾಂಶವನ್ನು GUI (ಬಳಕೆದಾರ) ಗೆ ತಲುಪಿಸುವ ಉದ್ದೇಶವನ್ನು ಹೊಂದಿವೆ. ಕೆಲಸಗಾರರ ವಿನ್ಯಾಸದ ಮಾದರಿಯು ಒಂದು ಕಾರ್ಯವನ್ನು ಮತ್ತೊಂದು ದಾರದಲ್ಲಿ ಕಾರ್ಯಗತಗೊಳಿಸುವುದು ಮತ್ತು ಫಲಿತಾಂಶಗಳನ್ನು ಇ. ಡಿ. ಟಿ. ಯಲ್ಲಿ ಪ್ರಸ್ತುತಪಡಿಸುವುದು ಎರಡನ್ನೂ ಕೆಲಸಗಾರರ ವಿನ್ಯಾಸದ ಮಾದರಿಯ ಮೂಲಕ ಸಂಯೋಜಿಸಬಹುದು. ಸನ್ ಮೈಕ್ರೋಸಿಸ್ಟಮ್ಸ್ ಅಭಿವೃದ್ಧಿಪಡಿಸಿದ javax.swing.SwingWorker ವರ್ಗವು ಕೆಲಸಗಾರರ ವಿನ್ಯಾಸ ಮಾದರಿಯ ಅನುಷ್ಠಾನವಾಗಿದೆ ಮತ್ತು ಜಾವಾ 6 ಪ್ರಮಾಣಿತ ಸ್ವಿಂಗ್ ವಿತರಣೆಯ ಭಾಗವಾಗಿದೆ. ಸ್ವಿಂಗ್ ವರ್ಕರ್ ಅನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಇಡಿಟಿಯನ್ನು ನಿರ್ಬಂಧಿಸದಂತೆ ಸುದೀರ್ಘವಾದ ಕಾರ್ಯವನ್ನು ನಿರ್ವಹಿಸಲು ಇಡಿಟಿ-ಕಾರ್ಯಗತಗೊಳಿಸಿದ ಈವೆಂಟ್ ಕೇಳುಗರಿಂದ ಆಹ್ವಾನಿಸಲಾಗುತ್ತದೆ. ಮಾದರಿಗಳು ಸ್ವಿಂಗ್ವರ್ಕರ್ <ಡಾಕ್ಯುಮೆಂಟ್, ವಾಯ್ಡ್> ವರ್ಕರ್ = ಹೊಸ ಸ್ವಿಂಗ್ವರ್ಕರ್ <ಡಾಕ್ಯುಮೆಂಟ್, ವಾಯ್ಡ್> () {ಸಾರ್ವಜನಿಕ ಡಾಕ್ಯುಮೆಂಟ್ ಡೋಇನ್ಬ್ಯಾಕ್ಗ್ರೌಂಡ್ () ಐಒಎಕ್ಸೆಪ್ಶನ್ ಅನ್ನು ಎಸೆಯುತ್ತದೆ {ರಿಟರ್ನ್ ಲೋಡ್ಎಕ್ಸ್ಎಂಎಲ್ ();// ಹೆವಿ ಟಾಸ್ಕ್} ಸಾರ್ವಜನಿಕ ಶೂನ್ಯವಾಗಿದೆ () {ಪ್ರಯತ್ನಿಸಿ {ಡಾಕ್ಯುಮೆಂಟ್ ಡಾಕ್ = ಪಡೆಯಿರಿ (); ಪ್ರದರ್ಶನ (ಡಾಕ್);} ಕ್ಯಾಚ್ (ಎಕ್ಸೆಪ್ಶನ್ ಎಕ್ಸ್) {ex.printStackTrace ();}}; worker.execute (); ನೀವು ಗ್ರೂವಿ ಮತ್ತು groovy.swing.SwingBuilder ಅನ್ನು ಬಳಸಿದರೆ, ನೀವು ಡೋಲೇಟರ್ (), ಡೂ ಔಟ್ಸೈಡ್ (), ಮತ್ತು ಎಡಿಟಿ () ಅನ್ನು ಬಳಸಬಹುದು. ನಂತರ ನೀವು ಇದನ್ನು ಹೆಚ್ಚು ಸರಳವಾಗಿ ಹೀಗೆ ಬರೆಯಬಹುದುಃ ಡು ಔಟ್ಸೈಡ್ {ಡೆಫ್ ಡಾಕ್ = ಲೋಡ್ ಎಕ್ಸ್ಎಂಎಲ್ ()// ಹೆವಿ ಟಾಸ್ಕ್ ಎಡ್ ಟಿ {ಡಿಸ್ಪ್ಲೇ (ಡಾಕ್)}} ಸಮಾನತೆಗಳು System.ComponentModel.BackgroundWorker-. ನೆಟ್ ಫ್ರೇಮ್ವರ್ಕ್ flash.system.Worker-ಅಡೋಬ್ ಫ್ಲ್ಯಾಶ್ android.os.AsyncTask-ಆಂಡ್ರಾಯ್ಡ್ ಮಾಡೆಲ್ ಎಕ್ಸಿಕ್ಯುಷನ್ ಸ್ವಿಂಗ್ವೊರ್ಕರ್ ಅನ್ನು ಸಾಮಾನ್ಯವಾಗಿ ಕಾಲ್ಬ್ಯಾಕ್ (ಕೇಳುಗ) ಘಟನೆಗಳನ್ನು ನಿರ್ವಹಿಸುವಾಗ ಇಡಿಟಿಯು ಸುದೀರ್ಘ ಕಾರ್ಯಗಳಿಗಾಗಿ ರಚಿಸುತ್ತದೆ. ಕೆಲಸಗಾರನ ದಾರವನ್ನು ಹುಟ್ಟುಹಾಕುವ ಮೂಲಕ, ಇ. ಡಿ. ಟಿ ಪ್ರಸ್ತುತ ಸಂದೇಶವನ್ನು ಕೆಲಸಗಾರನು ಪೂರ್ಣಗೊಳಿಸಲು ಕಾಯದೆ ನಿರ್ವಹಿಸುವುದನ್ನು ಮುಂದುವರಿಸುತ್ತದೆ. ಸಾಮಾನ್ಯವಾಗಿ, ಇದು ಅಪೇಕ್ಷಣೀಯವಲ್ಲ. ಸಾಮಾನ್ಯವಾಗಿ, ನಿಮ್ಮ ಇ. ಡಿ. ಟಿ. ಯು ಒಂದು ಜಿ. ಯು. ಐ ಘಟಕ ಕ್ರಿಯೆಯನ್ನು ನಿರ್ವಹಿಸುತ್ತದೆ, ಇದು ಜೆಫೈಲ್ ಚೂಸರ್ ನಂತಹ ಮತ್ತೊಂದು ಸಂವಾದದ ಮೂಲಕ ಆಯ್ಕೆ ಮಾಡಲು ಬಳಕೆದಾರನನ್ನು ಒತ್ತಾಯಿಸುತ್ತದೆ, ಇದು ಪಾಪ್ ಅಪ್ ಆಗುತ್ತದೆ, ಬಳಕೆದಾರರು ಅದರ ಆಯ್ಕೆಯನ್ನು ಆರಿಸಿಕೊಳ್ಳುವಾಗ ಸ್ಪಂದಿಸುತ್ತದೆ ಮತ್ತು "ಓಕೆ" ಗುಂಡಿಯನ್ನು ಒತ್ತಿದ ನಂತರವೇ ಆಯ್ದ ಕಡತದೊಂದಿಗೆ ಕ್ರಮವು ಮುಂದುವರಿಯುತ್ತದೆ. ನೀವು ನೋಡಿ, ಇದು ಸಮಯ ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ (ಬಳಕೆದಾರರು ಸೆಕೆಂಡುಗಳಲ್ಲಿ ಪ್ರತಿಕ್ರಿಯಿಸುತ್ತಾರೆ) ಮತ್ತು ಇಡಿಟಿ ನಿರ್ಬಂಧಿಸುತ್ತಿರುವ ಈ ಸಮಯದಲ್ಲಿ ನಿಮಗೆ ಸ್ಪಂದಿಸುವ ಜಿಯುಐ (ಸಂದೇಶಗಳನ್ನು ಇನ್ನೂ ಇಡಿಟಿಯಲ್ಲಿ ಪಂಪ್ ಮಾಡಲಾಗುತ್ತದೆ) ಅಗತ್ಯವಿದೆ (ಇದು ಹೊಸದನ್ನು ನಿಭಾಯಿಸುವುದಿಲ್ಲ, ಉದಾಹರಣೆಗೆ. ಜೆಫೈಲ್ ಚೂಸರ್, ಸಂವಾದವನ್ನು ಮುಚ್ಚುವ ಮೊದಲು ಮತ್ತು ಪ್ರಸ್ತುತ ಘಟಕ ಕ್ರಿಯೆಯು ಮುಗಿಯುವ ಮೊದಲು ಸರತಿಯಲ್ಲಿರುವ ಸಂದೇಶಗಳು). ಇ. ಡಿ. ಟಿ. ಯು ಹೊಸ ಸಂದೇಶ ಲೂಪ್ ಅನ್ನು ಪ್ರವೇಶಿಸುವ ಮೂಲಕ ದುಷ್ಟ ಚಕ್ರವನ್ನು ಮುರಿಯುತ್ತದೆ, ಇದು "ಮಾದರಿ ಸಂವಾದವು ಮುಗಿಯುವವರೆಗೆ" ಸಂದೇಶಗಳನ್ನು ಸಾಮಾನ್ಯ ರೀತಿಯಲ್ಲಿ ರವಾನಿಸುತ್ತದೆ ಮತ್ತು ಘಟಕ ಕ್ರಿಯೆಯಲ್ಲಿ ನಿರ್ಬಂಧಿತ ಸ್ಥಾನದಿಂದ ಸಾಮಾನ್ಯ ಸಂದೇಶ ಪ್ರಕ್ರಿಯೆಯು ಪುನರಾರಂಭಗೊಳ್ಳುತ್ತದೆ. ಓಪನ್ ಸೋರ್ಸ್ ಫಾಕ್ಸ್ಟ್ರಾಟ್ ಯೋಜನೆಯು ಅನಿಯಂತ್ರಿತ ಬಳಕೆದಾರರ ಕಾರ್ಯಗಳಿಗೆ "ಸಿಂಕ್ರೊನಸ್" ಕಾರ್ಯಗತಗೊಳಿಸುವ ಕಾರ್ಯವಿಧಾನವನ್ನು ಒದಗಿಸಲು ಸ್ವಿಂಗ್ ಸಂದೇಶ ಲೂಪ್ ಪಂಪಿಂಗ್ ಅನ್ನು ಅನುಕರಿಸುತ್ತದೆ, ಇದು ಕೆಲಸಗಾರನು ಕಾರ್ಯವನ್ನು ಪೂರ್ಣಗೊಳಿಸಿದ ನಂತರವೇ ಮುಂದುವರಿಯುತ್ತದೆ. button.addActionListener (ಹೊಸ ಆಕ್ಷನ್ಲಿಸ್ಟನರ್ () {ಸಾರ್ವಜನಿಕ ಶೂನ್ಯ ಆಕ್ಷನ್ಪರ್ಫಾರ್ಮ್ಡ್ (ಆಕ್ಷನ್ಇವೆಂಟ್ ಇ) {button.setText ("ಸ್ಲೀಪಿಂಗ್".); ಸ್ಟ್ರಿಂಗ್ ಪಠ್ಯ = ಶೂನ್ಯ; ಪ್ರಯತ್ನಿಸಿ {ಪಠ್ಯ = (ಸ್ಟ್ರಿಂಗ್) Worker.post (ಹೊಸ ಕಾರ್ಯ () {ಸಾರ್ವಜನಿಕ ಆಬ್ಜೆಕ್ಟ್ ರನ್ () ಎಕ್ಸೆಪ್ಶನ್ ಅನ್ನು ಎಸೆಯುತ್ತದೆ {Thread.sleep (10000); ಹಿಂತಿರುಗಿ "ಸ್ಲೀಪ್! ";}});} ಕ್ಯಾಚ್ (ಎಕ್ಸೆಪ್ಶನ್ x). button.setText (ಟೆಕ್ಸ್ಟ್); ಏನೋ ಎಲ್ಸ್ ();}); ಜಾವಾ 1.7 ರಿಂದ, ಈವೆಂಟ್ ಕ್ಯೂ () ಸಿಸ್ಟಮ್ನಲ್ಲಿ ಕ್ರಿಯೇಟ್ ಸೆಕೆಂಡರಿ ಲೂಪ್ () ಅನ್ನು ಬಹಿರಂಗಪಡಿಸುವ ಮೂಲಕ ಕಸ್ಟಮ್ ಸೆಕೆಂಡರಿ ಸಂದೇಶ ಲೂಪ್ಗಳಿಗೆ ಜಾವಾ ಪ್ರಮಾಣಿತ ಪರಿಹಾರವನ್ನು ಒದಗಿಸುತ್ತದೆ. ಎಬ್ಸ್ಟ್ರಾಕ್ಟ್ ವಿಂಡೋ ಟೂಲ್ಕಿಟ್ (ಎಡಬ್ಲ್ಯೂಟಿ) ಸ್ವಿಂಗ್ (ಜಾವಾ) ಸ್ವಿಂಗ್ವರ್ಕರ್ ಕಾಂಪೊನೆಂಟ್ಅನ್ನು ಸಹ ನೋಡಿ ಥ್ರೆಡ್ ಉಲ್ಲೇಖಗಳ ಬಾಹ್ಯ ಕೊಂಡಿಗಳನ್ನು ನವೀಕರಿಸಿ (ಸ್ವಿಂಗ್ ಎಪಿಐ ಜಾವಡಾಕ್ ಡಾಕ್ಯುಮೆಂಟೇಶನ್) (ಎಡಬ್ಲ್ಯೂಟಿ ಎಪಿಐ ಜಾವಡಾಕ್ ಡಾಕ್ಯುಮೆಂಟೇಶನ್) ಸ್ವಿಂಗ್ ಟ್ಯುಟೋರಿಯಲ್ ಎಡಬ್ಲ್ಯೂಟಿ/ಸ್ವಿಂಗ್ ಈವೆಂಟ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್ ಲೇಖನದಿಂದ ಈವೆಂಟ್-ಡಿಸ್ಪಾಚಿಂಗ್ ಥ್ರೆಡ್ ಸ್ವಿಂಗ್ವರ್ಕರ್ ವಿವರಣೆ ಈವೆಂಟ್ ಪಂಪಿಂಗ್, ರವಾನೆ ಮತ್ತು ಸಂಸ್ಕರಣೆ, ಮತ್ತು ಇಡಿಟಿ ಫಾಕ್ಸ್ಟ್ರಾಟ್ ಪ್ರಾಜೆಕ್ಟ್ ಹೋಮ್ ಪೇಜ್ ಜಾವಾ (ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆ)