ПредишенСледващото

Прекъсване на резбата (interrupte резба).

Нарисува два класа наследява от Изпълнима. Те са лесно пълнене (Thread.sleep и Sout). Учил съм въпроса за прекъсване на нишки, използвайки прекъснато и isInterrupted. че няма прекъсване по някаква причина, както и изпълнението на програмата zatsiklavaetsya и грешка сваля:

След грешка заминаване операция продължава за неопределено време нишки. Но, ако се премахне от клас, който произтича от изпълнима, обадете се на Thread.sleep, нормалното протичане на програмата. В улова, защо грешката сваля а защо не и да прекрати програмата.
Ето основните:

Метод сън е нативен, т.е. тя се изпълнява на език, различен от Java толкова подробно проучване му е малко трудно ... но аз отидох малко по-различен начин, а именно:

и получава следната картина - след изпълнение на този метод прекъснат () е лъжа, следователно, цикълът не свършва ... спрете нишката може да се постави в почивка за прихващане на изключения дума.

Следователно е ясно, че изключението, което се случва по време на метода на сън успешно прихванати и показва stektreys, но заради това, което описах по-горе - нишката продължава да работи тихо нататък.

Гриф връзка с прекъсване инсталация в опит улов - е измислен преписи, на пръв поглед работи добре. Остава да се разбере дали има в този случай капаните.

Т.е. има възможност, че thread.interrupt () ще се нарича след блок пробвам / улов да се провери в течение на време (! Thread.interrupted ()), но изглежда, е много малка.

Това са техните заключения стигнах до разглеждането на вашата задача.

Написах малко погрешно след този метод прекъснат () е лъжа, следователно, цикълът не свършва ... спрете нишката може да се постави в почивка за прихващане на изключения дума. След настъпването на изключение и е хванат само в случай на метод сън прекъсване, което означава, че надеждността е по-добре да се осигурят допълнителни прекъсвания теми, прекъсна разчита само на чист nepoluchaetsya.

) Тя може да бъде вярно, и така:

Това е, по мое мнение, най-подходящото решение и се прилага във вариант практика. докато блокът трябва да бъде поставен в опитам улов, и всичко ще бъде наред. Вместо e.printStackTrace (); Можете да покажете всяко съобщение (например "работа прекъсна"), за да стане ясно на логиката на програмата. Благодаря за помощта, Гриф. плюс профил :)

) Един добър човек, за да не се интересуваме :)
Особено съименник :) И колкото повече, че ние имаме, ако информацията е коректна в профила си, разликата в години до кръгло число ... много символично :)

Подкрепете проекта - споделете линка, благодаря!