Прекъсване на резбата (interrupte резба).
Нарисува два класа наследява от Изпълнима. Те са лесно пълнене (Thread.sleep и Sout). Учил съм въпроса за прекъсване на нишки, използвайки прекъснато и isInterrupted. че няма прекъсване по някаква причина, както и изпълнението на програмата zatsiklavaetsya и грешка сваля:
След грешка заминаване операция продължава за неопределено време нишки. Но, ако се премахне от клас, който произтича от изпълнима, обадете се на Thread.sleep, нормалното протичане на програмата. В улова, защо грешката сваля а защо не и да прекрати програмата.
Ето основните:
Метод сън е нативен, т.е. тя се изпълнява на език, различен от Java толкова подробно проучване му е малко трудно ... но аз отидох малко по-различен начин, а именно:
и получава следната картина - след изпълнение на този метод прекъснат () е лъжа, следователно, цикълът не свършва ... спрете нишката може да се постави в почивка за прихващане на изключения дума.
Следователно е ясно, че изключението, което се случва по време на метода на сън успешно прихванати и показва stektreys, но заради това, което описах по-горе - нишката продължава да работи тихо нататък.
Гриф връзка с прекъсване инсталация в опит улов - е измислен преписи, на пръв поглед работи добре. Остава да се разбере дали има в този случай капаните.
Т.е. има възможност, че thread.interrupt () ще се нарича след блок пробвам / улов да се провери в течение на време (! Thread.interrupted ()), но изглежда, е много малка.
Това са техните заключения стигнах до разглеждането на вашата задача.
Написах малко погрешно след този метод прекъснат () е лъжа, следователно, цикълът не свършва ... спрете нишката може да се постави в почивка за прихващане на изключения дума. След настъпването на изключение и е хванат само в случай на метод сън прекъсване, което означава, че надеждността е по-добре да се осигурят допълнителни прекъсвания теми, прекъсна разчита само на чист nepoluchaetsya.
) Тя може да бъде вярно, и така:
Това е, по мое мнение, най-подходящото решение и се прилага във вариант практика. докато блокът трябва да бъде поставен в опитам улов, и всичко ще бъде наред. Вместо e.printStackTrace (); Можете да покажете всяко съобщение (например "работа прекъсна"), за да стане ясно на логиката на програмата. Благодаря за помощта, Гриф. плюс профил :)
) Един добър човек, за да не се интересуваме :)
Особено съименник :) И колкото повече, че ние имаме, ако информацията е коректна в профила си, разликата в години до кръгло число ... много символично :)