Junior — Middle
Программда агымдын ишке ашын кантип үзгүлтүккө учуратса болот?
sobes.tech AI
AIден жооп
Androidда (жана жалпы Javaда) жиптин ишин үзгүлтүккө учуратуу үчүн Thread объектисинин interrupt() ыкмасын колдонсо болот. Бул ыкма жиптин үзгүлтүккө учураган белгисин коюп, эгер жип күтүү абалында болсо (мисалы, sleep(), wait()), InterruptedException исключени чыгарыла турган болот.
Жипти туура үзгүлтүккө учуратуу үчүн, анын кодунда үзгүлтүк абалын мезгил-мезгили менен текшерип туруш керек, мисалы, Thread.currentThread().isInterrupted() ыкмасы аркылуу же InterruptedException кармап алуу менен.
Мисал:
Thread thread = new Thread(() -> {
try {
while (!Thread.currentThread().isInterrupted()) {
// Ишти аткаруу
Thread.sleep(1000); // InterruptedException чыгарышы мүмкүн
}
} catch (InterruptedException e) {
// Жип уйку учурунда үзгүлтүккө учурады
Thread.currentThread().interrupt(); // үзгүлтүк белгисин калыбына келтирүү
}
// Иш аяктады
});
thread.start();
// Жипти үзгүлтүккө учуратуу
thread.interrupt();
Ошондой эле, белгилер же башка синхрондоштуруу механизмдерин колдонуп, жумушту көзөмөлдөп аяктоо мүмкүн.