Coroutines :: рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдиреБрднрд╡

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рдХреЛрд░рдЯрд╛рдЗрди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВред рдЕрдиреБрдХреНрд░рдорд┐рдХ, рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рдЖрд╡реЗрджрди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдЖрдЗрдП рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ, рдбрд┐рдмрдЧрд┐рдВрдЧ, рдФрд░ рдХреЛрд░рдЯрд╛рдЗрди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдмрдиреЗ рдЫрд╛рдкреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛ред

рдкреЛрд╕реНрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ рдПрдордмреАрдПрд▓рдЯреА рдбреАрдИрд╡реА 2018 рдкрд░ рдореЗрд░реА рд░рд┐рдкреЛрд░реНрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓реЗрдЦ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ - рд╡реАрдбрд┐рдпреЛ рдХрд╛ рдПрдХ рд▓рд┐рдВрдХред

рд╕рдВрдЧрдд рд╢реИрд▓реА



рдЕрдВрдЬреАрд░ред 2.1

Corutin Developers рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдХреНрдпрд╛ рдерд╛? рд╡реЗ рдЪрд╛рд╣рддреЗ рдереЗ рдХрд┐ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдпрдерд╛рд╕рдВрднрд╡ рд╕рд░рд▓ рд╣реЛред рднрд╛рд╖рд╛ рдХреЗ рд╡рд╛рдХреНрдпрд╛рддреНрдордХ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб "рд▓рд╛рдЗрди рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЗрди" рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдЖрд╕рд╛рди рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реИ: рдХреЛрд╢рд┐рд╢-рдХреИрдЪ-рдЖрдЦрд┐рд░, рд▓реВрдкреНрд╕, рд╕рд╢рд░реНрдд рдмрдпрд╛рди, рдФрд░ рдЗрд╕реА рддрд░рд╣ред

рдЖрдЗрдП рджреЛ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдзрд╛рдЧреЗ рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЪрд┐рддреНрд░ 2.1)ред рдкрд╣рд▓реЗ рдереНрд░реЗрдб рдмреА рдкрд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреБрдЫ рдкрд░рд┐рдгрд╛рдо рдбреЗрдЯрд╛рдмреА рджреЗрддрд╛ рд╣реИ , рдлрд┐рд░ рд╣рдореЗрдВ рдЗрд╕ рдкрд░рд┐рдгрд╛рдо рдХреЛ рджреВрд╕рд░реЗ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдЬреЛ рдбреЗрдЯрд╛рдмреА рдХреЛ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдереНрд░реЗрдб рдП рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ ред Coroutine рдХреЗ рд╕рд╛рде, рд╣рдо рдЕрдкрдирд╛ рдХреЛрдб рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕рд╛ рдХрд┐ рдЕрдВрдЬреАрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред 2.1ред рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред

рдлрд╝рдВрдХреНрд╢рдВрд╕ longOpOnB, longOpOnA - рддрдерд╛рдХрдерд┐рдд рд╕рд╕реНрдкреЗрдВрдб -functions, рдЬрд┐рд╕рдХреЗ рдкрд╣рд▓реЗ рдереНрд░реЗрдб рдХреЛ рдореБрдХреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЕрдкрдирд╛ рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдлрд┐рд░ рд╕реЗ рд╡реНрдпрд╕реНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрди рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдХреЙрд▓рд┐рдВрдЧ рдХреЛрдб рдХреЗ "рд╕реБрд╕рдВрдЧрдд" рд╢реИрд▓реА рдХреЛ рдмрдирд╛рдП рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рдХреЛрд░рдЯрд╛рдЗрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдбреБрдмреЛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рддрдерд╛рдХрдерд┐рдд Coroutine рдмрд┐рд▓реНрдбрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрд░рдЖрдЙрдЯ рдмрдирд╛рдиреЗ рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдХреГрддрд┐ рдореЗрдВ, рдпрд╣ рд▓реЙрдиреНрдЪ рд╣реИ , рд▓реЗрдХрд┐рди рдЕрдиреНрдп рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, async , runBlocking ред рдореИрдВ рдЙрдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдж рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред

рдЕрдВрддрд┐рдо рддрд░реНрдХ рдХреЙрд░рдЖрдЙрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреЛрдб рдХрд╛ рдПрдХ рдмреНрд▓реЙрдХ рд╣реИ: рд╕рд╕реНрдкреЗрдВрдб рдлрд╝рдВрдХреНрд╢рдВрд╕ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗрд╡рд▓ рдХреЙрд░рдЖрдЙрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рд╕реНрдкреЗрдВрдб рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╕рдВрднрд╡ рд╣реИред

рдХреЙрд░рдЯреАрди рдмрд┐рд▓реНрдбрд░ рд╡рд┐рдзрд┐ рдореЗрдВ рдЕрдиреНрдп рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓реЙрдиреНрдЪ рдХрд╛ рдкреНрд░рдХрд╛рд░, рдереНрд░реЗрдб рдЬрд┐рд╕рдореЗрдВ рдмреНрд▓реЙрдХ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЕрдиреНрдпред

рдЬреАрд╡рди рдЪрдХреНрд░ рдкреНрд░рдмрдВрдзрди


Coroutine рдмрд┐рд▓реНрдбрд░ рд╣рдореЗрдВ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рдХреЗ рд░реВрдк рдореЗрдВ рд░рд┐рдЯрд░реНрди рд╡реИрд▓реНрдпреВ рджреЗрддрд╛ рд╣реИ - рдЬреЙрдм рдХреНрд▓рд╛рд╕ рдХрд╛ рдЙрдкрд╡рд░реНрдЧ (Fig.2.2)ред рдЗрд╕рдХреЗ рд╕рд╛рде, рд╣рдо рдХреЛрд░реБрдЯрд┐рди рдХреЗ рдЬреАрд╡рди рдЪрдХреНрд░ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдкреНрд░рд╛рд░рдВрдн () рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдкреНрд░рд╛рд░рдВрдн рдХрд░реЗрдВ, рд░рджреНрдж рдХрд░реЗрдВ () рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рд░рджреНрдж рдХрд░реЗрдВ, рдЬреЙрдм рдХреЗ рд▓рд┐рдП рдЬреЙрдЗрди ( ) рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдиреМрдХрд░реА рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдШрдЯрдирд╛ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрдВ рдФрд░ рдмрд╣реБрдд рдХреБрдЫред


рдЕрдВрдЬреАрд░ред 2.2

рдкреНрд░рд╡рд╛рд╣ рдкрд░рд┐рд╡рд░реНрддрди


рдЖрдк coroutine рдХреЗ рд╕рдВрджрд░реНрдн рддрддреНрд╡ рдХреЛ рдмрджрд▓рдХрд░ coroutine рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╢реЗрдбреНрдпреВрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИред (рдЪрд┐рддреНрд░ред 2.3)

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреЛрд░реБрдЯрд┐рди 1 рдПрдХ рдпреВрдЖрдИ рдереНрд░реЗрдб рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдЧрд╛, рдЬрдмрдХрд┐ рдХреЙрд░рдкрд┐рди 2 рдбрд┐рд╕реНрдкреИрдЪрд░ .IO рдкреВрд▓ рд╕реЗ рд▓рд┐рдП рдЧрдП рдереНрд░реЗрдб рдореЗрдВред


рдЪрд┐рддреНрд░рд╛ 2.3

рдХреЛрд░рдЯрд╛рдЗрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдХ рдХреЙрдиреНрдЯреЗрдХреНрдЯ рдлрдВрдХреНрд╢рди рднреА рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ (рдХреЙрд░рдЯрд╛рдЗрди рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ) рд╣реЛрддрд╛ рд╣реИ , рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЖрдк рдПрдХ рдХреЛрд░рдЯрд╛рдЗрди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдереНрд░реЗрдбреНрд╕ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдзрд╛рдЧреЗ рдХреЗ рдмреАрдЪ рдХреВрджрдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ:


рдЕрдВрдЬреАрд░ред 2.4ред

рд╣рдо рдпреВрдЖрдИ рдереНрд░реЗрдб 1 рдкрд░ рдЕрдкрдирд╛ рдХреЛрд░рдЖрдЙрдЯ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред тЖТ рд▓реЛрдб рдЗрдВрдбрд┐рдХреЗрдЯрд░ рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ тЖТ рдХрд╛рдо рдереНрд░реЗрдб 2 рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ рд╣реИрдВ, рдореБрдЦреНрдп рдПрдХ рдХреЛ рдореБрдХреНрдд рдХрд░рддреЗ рд╣реИрдВ тЖТ рд╣рдо рдПрдХ рд▓рдВрдмрд╛ рдСрдкрд░реЗрд╢рди рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдпреВрдЖрдИ рдереНрд░реЗрдб рдореЗрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ тЖТ рдкрд░рд┐рдгрд╛рдо рд╡рд╛рдкрд╕ рдпреВрдЖрдИ рдереНрд░реЗрдб 3 тЖТ рдкрд░ рд▓реМрдЯреЗрдВ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╡рд╣рд╛рдВ рдХрд╛рдо рдХрд░реЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде, рдкреНрд░рд╛рдкреНрдд рдЖрдВрдХрдбрд╝реЛрдВ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдФрд░ рд▓реЛрдбрд┐рдВрдЧ рд╕рдВрдХреЗрддрдХ рдХреЛ рдЫрд┐рдкрд╛рдирд╛ред

рдпрд╣ рдЕрдм рддрдХ рдмрд╣реБрдд рдЖрд░рд╛рдорджрд╛рдпрдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдЖрдЧреЗ рдмрдврд╝реЗрдВред

рд╕рдорд╛рд░реЛрд╣ рдирд┐рд▓рдВрдмрд┐рдд рдХрд░реЗрдВ


рд╕рдмрд╕реЗ рдЖрдо рдорд╛рдорд▓реЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рдХреЛрд░реБрдЯрд┐рди рдХреЗ рдХрд╛рдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ - рд░реЗрдЯреНрд░реЛрдлрд╝рд┐рдЯ 2 рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ред

рдкрд╣рд▓реА рдЪреАрдЬрд╝ рдЬреЛ рд╣рдореЗрдВ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИ, рд╡рд╣ рд╣реИ рдХреЙрд▓рдмреИрдХ рдХреЙрд▓ рдХреЛ рдХреЛрд░рдЯрд╛рдЗрди рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╕реНрдкреЗрдВрдб рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ред


рдЕрдВрдЬреАрд░ред 2.5

рдХреЙрд░рдЖрдЙрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлреЙрд░реНрдо рд╕рд╕реНрдкреЗрдВрдбрдПрдХреНрд╕рдПрдПрдирдПрдХреНрд╕рдПрдХреНрд╕ рдХреЛрд░рдЯрд╛рдЗрди рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ , рдЬреЛ рдПрдХ рддрд░реНрдХ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ , рдЬрд┐рд╕рдореЗрдВ рдХреЙрдиреНрдЯрд┐рдиреНрдпреВрд╢рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдФрд░ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╣рдо рдХреНрд░рдорд╢рдГ рддреНрд░реБрдЯрд┐ рдФрд░ рд╕рдлрд▓рддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдХреЛрд░рдЖрдЙрдЯ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд╕рдХреЗ рдмрд╛рдж, рд╣рдо рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдПрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрдм ResWithException рд╡рд┐рдзрд┐ рдХреЛ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╣рдореЗрдВ рдХрд┐рд╕реА рддрд░рд╣ рдиреЗрдЯрд╡рд░реНрдХ рдЕрдиреБрд░реЛрдз рдХреЙрд▓ рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд╕рдорд╛рд░реЛрд╣ рд╕реНрдердЧрд┐рдд рдХрд░реЗрдВред рдХреЙрд▓ рд░рджреНрдж рдХрд░рдирд╛


рдЕрдкреНрд░рдпреБрдХреНрдд рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд░рд┐рд╣рд╛рдИ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреЙрд▓ рдФрд░ рдЕрдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрдм рд╕рд╕реНрдкреЗрдВрдб рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдЖрдиреЗ рд╡рд╛рд▓реА рд╕рд╕реНрдкреЗрдВрдб рдХрд╛рдВрдХреЗрдмрд▓реЗрдмрд▓ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЫрд╡рд┐ред 2.6)ред рдпрд╣рд╛рдВ, рдмреНрд▓реЙрдХ рддрд░реНрдХ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреИрдВрд╕рд┐рд▓реЗрдмрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рд╡рд┐рдзрд┐ - рдЗрдирд╡реЛрдХрдСрдирд▓рд╛рдЗрдиреЗрд╢рди - рдЖрдкрдХреЛ рдПрдХ рддреНрд░реБрдЯрд┐ рдпрд╛ рдПрдХ рд╕рдлрд▓ рдХреЛрд░рдЯрд╛рдЗрди рд░рджреНрдж рдХрд░рдиреЗ рдХреА рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрди рдЕрдк рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрд╣рд╛рдВ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреЛ рд░рджреНрдж рдХрд░рдирд╛ рднреА рдЖрд╡рд╢реНрдпрдХ рд╣реИред


рдЕрдВрдЬреАрд░ред 2.6

UI рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдВ


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

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рдпреВрдЖрдИ рд╕реНрдЯреНрд░реАрдо рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕реЗ рдПрдХ рд╕реБрд╕рдВрдЧрдд рд╢реИрд▓реА рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ (рдЪрд┐рддреНрд░ 2.6)ред

рдпрджрд┐ рдЙрддреНрддрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЛ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рд▓рд┐рдЦрдирд╛, рддреЛ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рд╣реА рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрд╕рд╛рдиреА рд╕реЗ рдмреИрдХ-рд╕реНрдЯреНрд░реАрдо рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдкреВрд▓ рдкрд░ рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдпреВрдЖрдИ рдкрд░ рдХреЛрдб рдХреА рдПрдХ рднреА рдкрдВрдХреНрддрд┐ рдХреЗ рдмрд┐рдирд╛ рдирд┐рд╖реНрдкрд╛рджрди рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддрд╛ рд╣реИред


рдЕрдВрдЬреАрд░ред 2.7

рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдпрд╣ рд╕рдм рд╣рдореЗрдВ рдЖрд╡реЗрджрди рд╡рд┐рдХрд╛рд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ: рдХреЛрд╢рд┐рд╢-рдХреИрдЪ-рдЖрдЦрд┐рд░ред рд░рджреНрдж рдХрд░реЗрдВ Coroutine: CancellationException


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


рдЕрдВрдЬреАрд░ред 2.8

рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдорд╛рдирдХ рдкреНрд░рдпрд╛рд╕ рдХреИрдЪ рдЕрдВрддрддрдГ рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рдг рдЙрдкрд▓рдмреНрдз рд╣реИред рдЕрдм рдпреВрдЖрдИ рдореЗрдВ рддреНрд░реБрдЯрд┐ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдХреЛрдб рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░реВрдк рд▓реЗ рд╕рдХрддрд╛ рд╣реИ:


рдЕрдВрдЬреАрд░ред 2.9

рдХреЙрд░рдЯрд╛рдЗрди рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрд┐рд╕реЗ рдЬреЙрдм # рд░рджреНрдж рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХрд╣рдХрд░ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдПрдХ рд░рджреНрджреАрдХрд░рдг рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЕрдкрд╡рд╛рдж рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдХреНрд░реИрд╢ рдпрд╛ рдЕрдиреНрдп рдирдХрд╛рд░рд╛рддреНрдордХ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЗ рд▓рд┐рдП рдиреЗрддреГрддреНрд╡ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЬрдм рдХреЛрд╢рд┐рд╢ / рдХреИрдЪ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдХреИрдЪ рдмреНрд▓реЙрдХ рдореЗрдВ рдкрдХрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдпрджрд┐ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ "рдЧрд▓рдд" рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЛ рд╣реИрдВрдбрд▓ рдХрд░рдирд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕реЗ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕рдордЭрдирд╛ рд╣реЛрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, UI рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ "рд░рджреНрдж" рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдпрд╛ рддреНрд░реБрдЯрд┐ рд▓реЙрдЧрд┐рдВрдЧ рдкреНрд░рджрд╛рди рдХреА рдЬрд╛рддреА рд╣реИред рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рддреНрд░реБрдЯрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рджрд┐рдЦрд╛рдИ рдЬрд╛рдПрдЧреА, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реИ, рдФрд░ рджреВрд╕рд░реЗ рдореЗрдВ, рдПрдХ рдмреЗрдХрд╛рд░ рдЕрдкрд╡рд╛рдж рд▓реЙрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рд░рд┐рдкреЛрд░реНрдЯ рдХреЛ рдЕрд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░реЗрдЧрд╛ред

рдХреЛрд░рдЖрдЙрдЯ рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:


рдЕрдВрдЬреАрд░ред 2.10

рд▓реЙрдЧ рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐


рдЕрдкрд╡рд╛рдж рдЕрдкрд╡рд╛рдж рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

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


рдЕрдВрдЬреАрд░ред 2.11

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


рдЕрдВрдЬреАрд░ред 2.12

рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЗ рд╕рд╛рде рдХреМрди рд╕рд╛ рдХреЛрд░рдЯреБрдЗрди рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ, рдЖрдк рдХреЙрд░рдЯреАрдирдиреЗрдо рд╕рдВрджрд░реНрдн рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред (рдЪрд┐рддреНрд░ред реи.резрей)

CoroutineName рддрддреНрд╡ рдХрд╛ рдЙрдкрдпреЛрдЧ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рдореЗрдВ coroutine рдХрд╛ рдирд╛рдо рдЧреБрдЬрд░рддрд╛ рд╣реИ, рдЖрдк рдЗрд╕реЗ рдирд┐рд▓рдВрдмрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдореЗрдВ рдирд┐рдХрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдкрд╡рд╛рдж рд╕рдВрджреЗрд╢ рдХреЛ рдкреВрд░рдХ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ рдХрд┐ рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛рдВ рджреЗрдЦрдирд╛ рд╣реИред

рдпрд╣ рдХрд╛рд░реНрдп рдХреЗрд╡рд▓ рддрднреА рдХрд╛рд░реНрдп рдХрд░реЗрдЧрд╛ рдЬрдм рдирд┐рд▓рдВрдмрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдЗрд╕рд╕реЗ рдмрд╛рд╣рд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реЛ:


рдЕрдВрдЬреАрд░ред 2.13

рд▓реЙрдЧ рдХрд░рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ред ExceptionHandler


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

рд╣реИрдВрдбрд▓рд░ рдХреЛ CoroutineExceptionHandler рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред Coroutine рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдУрд╡рд░рд░реЗрдЯреЗрдб + рдСрдкрд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдЖрдк рдорд╛рдирдХ рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЕрдкрдиреЗ рд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдирд╣реЗрд▓реНрдб рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рдПрдХреНрд╕реИрдкреНрд╢рди рд╡рд┐рдзрд┐ рдореЗрдВ рдЧрд┐рд░ рдЬрд╛рдПрдЧрд╛, рдЬрд╣рд╛рдВ рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдЬреЛ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╣ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рд╣реИрдВрдбрд▓рд░ рдХреЛ рдЦрд╛рд▓реА рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ рдпрд╛ рдЕрдкрдиреА рдЬрд╛рдирдХрд╛рд░реА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рд╣реЛрдЧрд╛:


рдЕрдВрдЬреАрд░ред 2.14

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдЕрдкрд╡рд╛рдж рдХреА рд▓реЙрдЧрд┐рдВрдЧ рдХреНрдпрд╛ рджрд┐рдЦрддреА рд╣реИ:

  1. рдЖрдкрдХреЛ рдХреИрдВрд╕рд┐рд▓реЗрд╢рди рдПрдХреНрд╕рд╕реЗрдкреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЬрд┐рд╕реЗ рд╣рдо рдЕрдирджреЗрдЦрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
  2. рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рд▓реЙрдЧ рдЬреЛрдбрд╝реЗрдВред
  3. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рд░рдЦреЗрдВ, рдЬрд┐рд╕рдореЗрдВ рд▓реЙрдЧрд┐рдВрдЧ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдЕрдкрд╡рд╛рдж рдмрд╕ "рдЧрд╛рдпрдм" рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рд╣реБрдЖред

рдЕрдм, рдПрдХ рдЕрдкрд╡рд╛рдж рдХреЛ рдлреЗрдВрдХрдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреИрдХ рдЯреНрд░реЗрд╕ рд▓рд┐рд╕реНрдЯрд┐рдВрдЧ рдХреЛ рд▓реЙрдЧрдХреИрдЯ рдореЗрдВ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рднреЗрдЬрд╛ рдЬрд╛рдПрдЧрд╛:


рдЕрдВрдЬреАрд░ред 2.15

рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрдиред async


рдирд┐рд▓рдВрдмрд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рдВрдЪрд╛рд▓рди рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред

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

Async рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рджреЛ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рд╣реЛрдЧрд╛:


рдЕрдВрдЬреАрд░ред 2.16

рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдо рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рджреЛ рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЗ рд╕рд╛рде рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдлрд┐рд░, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдФрд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рднреА рдореМрдЬреВрджрд╛ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд░рджреНрдж рдХрд░рддреЗ рд╣реБрдП, рдпреВрдЖрдИ рдХреЛ рдЖрдХрд░реНрд╖рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдРрд╕рд╛ рдорд╛рдорд▓рд╛ рдЕрдХреНрд╕рд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ, рддреНрд░реБрдЯрд┐ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:

  1. Async-corutin рдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рдЕрдВрджрд░ рддреНрд░реБрдЯрд┐ рд╣реИрдВрдбрд▓рд┐рдВрдЧ рд▓рд╛рдУред
  2. рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рднреА рдХреЛрд░рдЖрдЙрдЯреНрд╕ рдХреЛ рд░рджреНрдж рдХрд░ рджреЗрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдиреМрдХрд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд░рджреНрдж рдХрд░рдиреЗ рдкрд░ рдЙрд╕рдХреЗ рд╕рднреА рдмрдЪреНрдЪреЗ рд░рджреНрдж рдХрд░ рджрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
  3. рд╣рдо рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рдЖрддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╕рднреА рдбреЗрдЯрд╛ рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдорд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрджрд┐ рд╡реЗрдЯ рдиреЙрдЯ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╕рдордп рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реБрдИред

рдЗрд╕ рд╕рдм рдХреЛ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрддреЗ рд╣реБрдП, рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рдХреЛрд░рдЯрд╛рдЗрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред Async-corutin рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднреА рдЬрдЯрд┐рд▓ рд╣реИ:


рдЕрдВрдЬреАрд░ред 2.17

рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк ExceptionHandler рдпрд╛ SupervisorJob рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреНрд░реБрдЯрд┐ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдиреЗрд╕реНрдЯреЗрдб рдХреЙрд░рдЖрдЙрдЯ


рдЖрдЗрдП рдиреЗрд╕реНрдЯреЗрдб рдХреЛрд░рдЯрд╛рдЗрди рдХреЗ рдХрд╛рдо рдХреЛ рджреЗрдЦреЗрдВред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдиреЗрд╕реНрдЯреЗрдб рдХреЙрд░рдЖрдЙрдЯ рдПрдХ рдмрд╛рд╣рд░реА рджрд╛рдпрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓рд╛ рд╣реИред рдирддреАрдЬрддрди, рдиреЗрд╕реНрдЯреЗрдб рдХреЛрд░рдЯрд╛рдЗрди рдПрдХ рдмреЗрдЯреА рдмрди рдЬрд╛рддреА рд╣реИ, рдФрд░ рдмрд╛рд╣рд░реА - рдорд╛рддрд╛-рдкрд┐рддрд╛ред

рдпрджрд┐ рд╣рдо рдмрд╛рд╣рд░реА рдХреЛрд░рдЯрд╛рдЗрди рдХреЛ рд░рджреНрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдмрдирд╛рдП рдЧрдП рдиреЗрд╕реНрдЯреЗрдб рдХреЙрд░рдЯрд╛рдЗрди, рдЬреЛ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдереЗ, рдЙрдиреНрд╣реЗрдВ рднреА рд░рджреНрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЬрдм рдЖрдк рд╡рд░реНрддрдорд╛рди рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рддреЛ рд╕реНрдХреНрд░реАрди рдХреЛ рдЫреЛрдбрд╝рддреЗ рд╕рдордп рдпрд╣ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЛрд░реБрдЯрд┐рди рд╣рдореЗрд╢рд╛ рдмреЗрдЯреА рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рдЖрдк рдПрдХ рдХреЙрд░рдЖрдЙрдЯ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рд╡реИрд╢реНрд╡рд┐рдХ рджрд╛рдпрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрд╛рд╣рд░реА рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЬрдм рдмрд╛рд╣рд░реА рдХреЛрд░рдЯрд╛рдЗрди рдХреЛ рд░рджреНрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдиреЗрд╕реНрдЯреЗрдб рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦреЗрдЧрд╛ рдЬреИрд╕реЗ рдХрд┐ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖ рдерд╛:


рдЕрдВрдЬреАрд░ред 2.18

рдкреИрд░реЗрдВрдЯ рдЬреЙрдм рдХреЗ рд╕рд╛рде рдЬреЙрдм рдХреА рдХреЗ рд╕рд╛рде рд░реЗрдлрд░реЗрдВрд╕ рдПрд▓рд┐рдореЗрдВрдЯ рдХреЛ рд░рд┐рдкреНрд▓реЗрд╕ рдХрд░рдХреЗ рдЖрдк рдЧреНрд▓реЛрдмрд▓ рдиреЗрд╕реНрдЯреЗрдб рдХреЙрд░рдЖрдЙрдЯ рдХрд╛ рдмрдЪреНрдЪрд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдкреЗрд░реЗрдВрдЯ рдХреЙрд░рдЖрдЙрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдореВрд▓ рдХреЛрд░реЛрдЯреАрди рдХреЗ рд╕рднреА рддрддреНрд╡реЛрдВ рдХреЛ рд▓реЗ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдереНрд░реЗрдб рдкреВрд▓, рдЕрдкрд╡рд╛рдж рд╣реИрдВрдбрд▓рд░, рдФрд░ рдЗрд╕реА рддрд░рд╣:


рдЕрдВрдЬреАрд░ред 2.19

рдЕрдм рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдмрд╛рд╣рд░ рд╕реЗ рдХреЛрд░рдЯрд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рдиреМрдХрд░реА рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдпрд╛ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреЗ рд╕рдВрджрд░реНрдн рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рдиреА рд╣реЛрдЧреАред рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЛ рдЗрд╕реЗ рдПрдХ рдмрдЪреНрдЪреЗ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдЕрд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред

breakpoints


рдбреАрдмрдЧ рдореЛрдб рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдорд╛рдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрд░рд╛рдЯрд╛рдЗрди рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд▓реЙрдЧрдбреИрдЯрд╛ рдлрд╝рдВрдХреНрд╢рди рдкрд░ рдЕрдЧрд▓реЗ рдХреЛрд░рдЖрдЙрдЯ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рд▓рдЧрд╛рддреЗ рд╣реИрдВ, рддреЛ рдЬрдм рдпрд╣ рдлрд╛рдпрд░ рдХрд░рддрд╛ рд╣реИ, рддреЛ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ рдФрд░ рдорд╛рди рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВ:


рдЕрдВрдЬреАрд░ред 2.20

рдЕрдм рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдХреЙрд░рдЯрд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд▓реЙрдЧрдбрд╛рдЙрди рдкрд░ рдПрдХ рдмреНрд░реЗрдХрдкреЙрдЗрдВрдЯ рдЫреЛрдбрд╝ рдХрд░:


рдЕрдВрдЬреАрд░ред 2.21

рд╡рд╛рдВрдЫрд┐рдд рдорд╛рдиреЛрдВ рдХреЛ рд╡рд┐рдлрд▓ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдмреНрд▓реЙрдХ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдирд┐рд▓рдВрдмрди-рдХрд╛рд░реНрдпреЛрдВ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдореЗрдВ рдбрд┐рдмрдЧрд┐рдВрдЧ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг


рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдмрд╣реБрдд рд╕реАрдзрд╛ рд╣реИред рдЖрдк рдЗрд╕рдХреЗ рд▓рд┐рдП Coroutine Builder RunBlocking рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред runBlocking рддрдм рддрдХ рдПрдХ рдереНрд░реЗрдб рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдЙрд╕рдХреЗ рд╕рднреА рдиреЗрд╕реНрдЯреЗрдб рдХреЙрд░рдЯрд╛рдЗрди рдЦрддреНрдо рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддреЗ, рдЬреЛ рдХрд┐ рдЖрдкрдХреЛ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд┐ рдХреЗ рдЕрдВрджрд░ рдХрд╣реАрдВ рдХреЛрд░реВрдЯреАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЙрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рд░рдирдмреЙрдХрд┐рдВрдЧ рдореЗрдВ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рд░рдирдмрд▓реЙрдХрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рдирд┐рд▓рдВрдмрд┐рдд рд╕рдорд╛рд░реЛрд╣ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:


рдЕрдВрдЬреАрд░ред 2.22

рдЙрджрд╛рд╣рд░рдг


рдЕрдВрдд рдореЗрдВ, рдореИрдВ рдХреЛрд░реБрдЯрд┐рди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╣рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рддреАрди рдкреНрд░рд╢реНрдиреЛрдВ рдП, рдмреА рдФрд░ рд╕реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрдирдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЛ рджрд┐рдЦрд╛рдПрдВ рдФрд░ рдЕрдиреБрд░реЛрдз рдП рдФрд░ рдмреА рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдХреНрд╖рдг рдХреЛ рдкреНрд░рддрд┐рдмрд┐рдВрдмрд┐рдд рдХрд░реЗрдВред

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреНрд╡реЗрд░реА рдХреЛрд░рдЖрдЙрдЯреНрд╕ A рдФрд░ B рдХреЛ рдПрдХ рдЖрдо рдореЗрдВ рд▓рдкреЗрдЯ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдкреВрд░реЗ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:


рдЕрдВрдЬреАрд░ред 2.23

рдирд┐рдореНрди рдЙрджрд╛рд╣рд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ 5 рд╕реЗрдХрдВрдб рдХреЗ рдЕрдВрддрд░рд╛рд▓ рдХреЗ рд╕рд╛рде рдЖрд╡рдзрд┐рдХ рдкреНрд░рд╢реНрдиреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓реВрдк рдХреЗ рд▓рд┐рдП рдирд┐рдпрдорд┐рдд рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ:


рдЕрдВрдЬреАрд░ред 2.24

рдирд┐рд╖реНрдХрд░реНрд╖


Minuses рдореЗрдВ рд╕реЗ, рдореИрдВ рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реВрдВ рдХрд┐ рдХреЛрд░рдЖрдЙрдЯ рдПрдХ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдпреБрд╡рд╛ рдЙрдкрдХрд░рдг рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рдЖрдк рдЙрдиреНрд╣реЗрдВ рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рд╛рд╡рдзрд╛рдиреА рд╕реЗ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдбрд┐рдмрдЧрд┐рдВрдЧ рдореЗрдВ рдХрдард┐рдирд╛рдЗрдпрд╛рдВ рд╣реЛрддреА рд╣реИрдВ, рд╕реНрдкрд╖реНрдЯ рдЪреАрдЬреЛрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдореЗрдВ рдПрдХ рдЫреЛрдЯрд╛ рдмреЙрдпрд▓рд░рдкреНрд▓реЗрдЯред

рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЬрдЯрд┐рд▓ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЛрд░рд╛рдЙрдЯрд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИред рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдорд╛рдирдХ рднрд╛рд╖рд╛ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпреВрдирд┐рдЯ рдЯреЗрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЖрд╕рд╛рдиреА рд╕реЗ рдХреЙрд░реБрдЯрд╛рдЗрдиреНрд╕ рдорд┐рд▓ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдпрд╣ рд╕рдм рдЙрд╕реА рдХрдВрдкрдиреА рдХреЗ рдмреЙрдХреНрд╕ рд╕реЗ рдирд┐рдХрд▓рддрд╛ рд╣реИ рдЬреЛ рднрд╛рд╖рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреА рд╣реИред

рд░рд┐рдкреЛрд░реНрдЯ рд╡реАрдбрд┐рдпреЛ


рдпрд╣ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрддреНрд░ рдирд┐рдХрд▓рд╛ред рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЕрдзрд┐рдХ рд╕реБрдирдирд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ - рдПрдордмреАрдПрд▓рдЯреА рдбреАрдИрд╡реА 2018 рдкрд░ рдореЗрд░реА рд░рд┐рдкреЛрд░реНрдЯ рд╕реЗ рд╡реАрдбрд┐рдпреЛ:


рд╡рд┐рд╖рдп рдкрд░ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдордЧреНрд░реА:


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


All Articles