рдЬрд╛рд╡рд╛ред рдХрд╛рд░реНрдп рдмрдВрдж рдХрд░реЛ

рд▓рдЧрднрдЧ рдПрдХ рд╕рд╛рд▓ рд╕реЗ рдЕрдм рдореИрдВ рдЧрд╣рдирддрд╛ рд╕реЗ рдЬрд╛рд╡рд╛ рдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рд▓рдЧрд╛ рд╣реБрдЖ рд╣реВрдВред рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдореЗрд░реА рд░рд╛рдп рдореЗрдВ рдПрдХ рдЧрдВрднреАрд░ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛, рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ, рдУрд░реЗрдХрд▓ рд╕реЗ рдЬреЗрд╡реАрдПрдо рдХреЗ рд╡рд░реНрддрдорд╛рди рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдврд╛рдВрдЪреЗ рдореЗрдВ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИ (рдЙрдкрд░реЛрдХреНрдд рдЬреЗрдбрдбреАрдХреЗ 1.5 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ)ред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЬрд╛рд╡рд╛ рдореЗрдВ рдлрд┐рд▓рд╣рд╛рд▓ рдХрд┐рд╕реА рднреА рдереНрд░реЗрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЧрд╛рд░рдВрдЯреА рд╕реЗ рд░реЛрдХрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдкреЛрд╕реНрдЯ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИред

рдпрд╣ рдПрдХ рддреБрдЪреНрдЫ рдХрд╛рд░реНрдп рдкреНрд░рддреАрдд рд╣реЛрдЧрд╛: рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдереНрд░реЗрдб (рдереНрд░реЗрдб) рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдо рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдХреБрдЫ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдпрд╣ рдирд┐рд░рд╛рд╢рд╛рдЬрдирдХ рд░реВрдк рд╕реЗ рд▓рдЯрдХрд╛ рд░рд╣рддрд╛ рд╣реИ (рдпрд╣ рд╢рд╛рдпрдж рдХреБрдЫ рдФрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ)ред рд╣рдо рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░реЗрдВрдЧреЗ? рдореИрдВ рдЕрдкрдиреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдореБрдХреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛? рд▓реЗрдХрд┐рди рдирд╣реАрдВ, рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдПрдХ рд╡рд┐рд╕реНрддреГрдд рдЕрдзреНрдпрдпрди рдкрд░, рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдЬреЗрд╡реАрдПрдо рдХреЗ рдкрд╛рд╕ рдХреЗрд╡рд▓ рдЕрдЯрдХ рдзрд╛рдЧрд╛ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд░реЛрдХрдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рд╣реИред рдкреБрд░рд╛рдиреЗ Thread.stop () рд╡рд┐рдзрд┐ рдХреЛ рдШреЛрд╖рд┐рдд рдФрд░ рдЕрдирд╛рддреНрдорд┐рдХ рдШреЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЬрд╛рд╡рд╛рдбреЙрдХ рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рд╡рд┐рдзрд┐ "рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред" рдареАрдХ рд╣реИ, рдЕрдЧрд░ рд╣рдо рд╕реБрд░рдХреНрд╖рд┐рдд рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рд╣рдореЗрдВ рдПрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдВрдЧреЗред рд▓реЗрдХрд┐рди рдПрдХ рдФрд░ рд╕реБрд░рдХреНрд╖рд┐рдд, рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ, рдкреЗрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдмрд╣реБрдд рд╕реБрд░рдХреНрд╖рд┐рдд Thread.interrupt () рдирд┐рд░реНрджреЗрд╢ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╡рд╣ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХреНрдпреЛрдВрдХрд┐ рд╡рд╣ рдмрд┐рд▓реНрдХреБрд▓ рдХреБрдЫ рднреА рдирд╣реАрдВ рдХрд░рддреА рд╣реИ! рдпрд╣ рдзрд╛рд░рд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрджреЗрд╢ рд╣реИ: "рдХреГрдкрдпрд╛ рд░реБрдХреЗрдВред" рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдереНрд░реЗрдб рдиреЗ рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ ... рддреЛ рдЬреИрд╕рд╛ рдХрд┐ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рд╣реИ "рдпрджрд┐ рдереНрд░реЗрдб рдереНрд░реЗрдб.рдиреЗрдЯреНрд░рдкреНрдЯ () рдХрд╛ рдЬрд╡рд╛рдм рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдЯреНрд░рд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред" рдЕрдиреБрдорддрд┐ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ

рдпрджрд┐ рдХрд╛рд░реНрдп рдереНрд░реЗрдб рдкреВрд▓ рдореЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, ExecutorService.submit (Runnable) рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд╕рдм рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЙрд╕реА рд╕рдордп, рд╣рдо рдпрд╣ рднреА рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рджрд┐рдП рдЧрдП рдХрд╛рд░реНрдп рдХреЛ рдХрд┐рд╕ рдереНрд░реЗрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЕрдм рдирд┐рд╖рд┐рджреНрдз рдереНрд░реЗрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред () рджреВрд╕рд░реА рдУрд░, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ Future рдХрд╛ рд▓рд┐рдВрдХ рд╣реИ, рдФрд░ Future рдореЗрдВ Future.cancel (рдмреВрд▓рд┐рдпрди) рдореЗрдердб рд╣реИ, рдЬрд┐рд╕реЗ рдХрд╛рд░реНрдп рдХреЛ рд░рджреНрдж рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдХрд╛рд░реНрдп рд╢реБрд░реВ рд╣реЛ рдЪреБрдХрд╛ рд╣реИ, Future.cancel (рд╕рдЪ) рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕реЗ рдмрдВрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред FutureTask рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рдХреЗ рджреМрд░рд╛рди, рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

if (mayInterruptIfRunning) {
Thread r = runner;
if (r != null)
r.interrupt(); }

рдпрд╛рдиреА рдлрд┐рд░, рдереНрд░реЗрдб рдЬрд┐рд╕рдореЗрдВ рдХрд╛рд░реНрдп рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдХреЗрд╡рд▓ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╣реИред рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рднреА рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрд╛рд░реНрдп рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред рд╡рд╣рд╛рдБ рд╣реИ, рдЬреИрд╕реЗ, Future.isDone () рд╡рд┐рдзрд┐, рд▓реЗрдХрд┐рди рдлрд┐рд░ рд╕реЗ, рдпрд╣ рди рдХреЗрд╡рд▓ рддрдм рд╕рд╣реА рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реЛрддрд╛ рд╣реИ, рдмрд▓реНрдХрд┐ Future.cancel () рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рддреБрд░рдВрдд рдмрд╛рдж, рднрд▓реЗ рд╣реА рдХрд╛рд░реНрдп рдЪрд▓ рд░рд╣рд╛ рд╣реЛ (рдХреНрдпреЛрдВрдХрд┐ Future.cancel (рд╕рддреНрдп) рдирд╣реАрдВ рд╣реИ рдПрдХ рдХрд╛рд░реНрдп рдХреЛ рд░реЛрдХрддрд╛ рд╣реИ рдЬреЛ рдкрд╣рд▓реЗ рд╣реА рдЪрд▓рдирд╛ рд╢реБрд░реВ рдХрд░ рдЪреБрдХрд╛ рд╣реИ)ред

рдареАрдХ рд╣реИ, рдЕрдЧрд░ рд╣рдо рд╕реНрд╡рдпрдВ рд╕рднреА рдХреЛрдб рд▓рд┐рдЦрддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕рд╣реА рд╕реНрдерд╛рдиреЛрдВ рдкрд░ рдереНрд░реЗрдб.рдЗрдВрд╕рд░реНрдЯ рдмрд╛рдзрд┐рдд () рдХреЛ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рдХреЛрдб рдЪрд▓рд╛рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рд╣рдореЗрдВ рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд╕рд╛рде рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП? рдХреБрдЫ рдЯреЗрдврд╝реЗ-рдореЗрдврд╝реЗ рдкреНрд▓рдЧ-рдЗрди рдЖрд╕рд╛рдиреА рд╕реЗ рдкреВрд░реЗ рд╕рд░реНрд╡рд░ рдХреА рдирд┐рд╖реНрдХреНрд░рд┐рдп рд╕реНрдерд┐рддрд┐ рдкреИрджрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рд╣рдо рдПрдХ рдЬрдореЗ рд╣реБрдП рдкреНрд▓рдЧ-рдЗрди рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдмрд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореИрдВ рдорд╛рдирддрд╛ рд╣реВрдВ, рдореИрдВ рдПрдХ рд╕рдВрддреЛрд╖рдЬрдирдХ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред рд╢рд╛рдпрдж рдереНрд░реЗрдб.рд╕реНрдЯреЙрдк () рд╡рд┐рдзрд┐ рдЗрддрдиреА рдЦрддрд░рдирд╛рдХ рдирд╣реАрдВ рд╣реИ? рдореБрдЭреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдЪрд┐рдХрд┐рддреНрд╕рдХреЛрдВ рдХреА рд░рд╛рдп рд╕реБрдирдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред

Source: https://habr.com/ru/post/In133413/


All Articles