рдЬрд╛рд╡рд╛: рдХреБрдВрдЬреА рд╕рдВрдХреНрд╖реЗрдк рдХреЗ рд╕рд╛рде рдирд┐рд╖реНрдкрд╛рджрдХ

рдЫрд╡рд┐

рд╕рдВрджреЗрд╢ рдкреНрд░рд╡рд╛рд╣ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреА рдПрдХ рдмрдбрд╝реА рд╢реНрд░реЗрдгреА рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдорд╕реНрдпрд╛ рд╣реИ:

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

рд╣рд╛рд▓рд╛рдБрдХрд┐, рдбреЗрдЯрд╛ рдкреНрд░рд╡рд╛рд╣ рдкрд░ рдХреБрдЫ рдкреНрд░рддрд┐рдмрдВрдз рд╣реИрдВ:



рдЖрд░реЗрдЦ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ: рдПрдХ рдереНрд░реЗрдб рдмрд╛рд░ рдкрд░ tread bar (tm) t 1 рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдЬрдмрдХрд┐ tug рдмрд╛рд░ (tm) рдПрдХ рдереНрд░реЗрдб T 2 рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИ
рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛рд░реНрдп рдХреБрдВрдЬреА рджреНрд╡рд╛рд░рд╛ рдХрд╛рд░реНрдп рдХрд░рдирд╛ рд╣реИ, рддрд╛рдХрд┐ рдЗрд╕ рдХреБрдВрдЬреА рдХреЗ рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реЛред

рд╣рдорд╛рд░реЗ рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ рдПрдХреНрд╕рд┐рдХреНрдпреВрдЯрд░ рдЬрдирддрд╛ рдХреЗ рд╕рд╛рдордиреЗ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

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

рдЯрд┐рдкреНрдкрдгреА 1: рд╕рдорд╕реНрдпрд╛ рдЗрд╕ рддрдереНрдп рд╕реЗ рдФрд░ рдЬрдЯрд┐рд▓ рд╣реИ рдХрд┐ рдХрдИ рдЯрдЧ (рдЯреАрдПрдо) рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдЯрдЧ (рдЯреАрдПрдо) рдПрдХ рд╣реА рдкреНрд░рдХрд╛рд░ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддрд╛ рд╣реИ; рджреВрд╕рд░реА рдУрд░, рдХрдИ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕рд╛рджрдЧреА рдХреЗ рд▓рд┐рдП, рдЖрдк рдПрди = 1 ) рдордЪрд╛рди (рдЯреАрдПрдо) рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВред

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

рдФрд░ рд▓рдЧрднрдЧ рд╣рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдпрд╣ рдХрд╛рд░реНрдп рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рддрд░реАрдХреЗ рд╕реЗ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рд╣рд░ рдПрдХ рдЗрд╕реЗ рдЕрд▓рдЧ рддрд░реАрдХреЗ рд╕реЗ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпреЗ рд╕рднреА рдпрд╛ рддреЛ рдкреНрд░рднрд╛рд╡реА рдирд╣реАрдВ рд╣реИрдВ, рдпрд╛ рдзреАрдореЗ рд╣реИрдВ, рдпрд╛ рджреЛрдиреЛрдВ рдХреЛ рдПрдХ рд╕рд╛рде рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред


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


рд╣рд╛рд▓рд╛рдБрдХрд┐, рдХреЛрдб рдЕрднреА рддрдХ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдирд╣реАрдВ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ рдФрд░ рдХрдИ рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдФрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреНрд░рдо рдореЗрдВ рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдпрд╣ рдПрдХ рдЫреЛрдЯреА рд╕реА рдорд╛рд░рдлреЗрдЯ рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдиреА рд╣реБрдИ рд╣реИ, рдореИрдВ рдирд┐рд░реНрдгрдп рдХреЗ рдкреНрд░рдореБрдЦ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░реВрдВрдЧрд╛ред

рдЗрд╕рд▓рд┐рдП, рдЪрд╛рд░реЛрдВ рдУрд░ рджреЗрдЦрдиреЗ рдкрд░, рд╣рдо рдпрд╣ рдирд╣реАрдВ рдЦреЛрдЬ рд╕рдХреЗ рдХрд┐ рд╣рдо jdk рдореЗрдВ рдЙрдкрд▓рдмреНрдз рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп рдбреЗрдЯрд╛ рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рдмреНрд▓реЙрдХреЛрдВ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВрдЧреЗред

рдПрдХ рдкреВрд░реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдЬрд╛рдЗрди рдЪрд┐рддреНрд░:


рд╕рд╣рдпреЛрдЧреА рд╕рд░рдгреА



рдореБрдЦреНрдп рдкрд╣рд▓реВ: рдПрдХ рдХреБрдВрдЬреА-рдореВрд▓реНрдп рдЬреЛрдбрд╝реА рдХрд╛ рднрдВрдбрд╛рд░рдгред рдЕрджреНрдпрддрди рджрд░ рдЬреАрддрдиреЗ рдХреЗ рджреМрд░рд╛рди рдЖрдк рд╕реНрдЯреЛрд░реЗрдЬ рдСрд░реНрдбрд░ рдХреА рдЙрдкреЗрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЗрд╕рд▓рд┐рдП рдПрдХ рд╣реИрд╢ рд╕рдВрд░рдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдУ (1) рд╣реИ, рдЦреБрдж рдХреЛ рдмрддрд╛рддреА рд╣реИред

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


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

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

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

рдЕрдм рдПрдХ рд╕рд░рдгреА рддрддреНрд╡ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:

рдкрд░рдорд╛рдгреБ refs



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

static class Entry<K> extends AtomicReference { final K key; public Entry(final K key){ this.key = key; } } 


рдкрд░рдорд╛рдгреБ рд╕рд░рдгреА рд░реЗрдлрд░реА



рд╕реНрдореГрддрд┐ рдХреА рд╕реНрдерд┐рд░рддрд╛ рдФрд░ рдкрд░рдорд╛рдгреБрддрд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдПрдЯреЙрдорд┐рдХрд░реЗрдВрд╕ рдПрд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдирд╛ рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдХ рдПрдЯреЙрдорд┐рдХрд░реЗрдВрд╕ рдРрд░реЗ рд╣реИ ред

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

рдХрд╛рд░реНрдб рдХрд╛ рдирд┐рд╢рд╛рди


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

рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдб рдХрд╛ рдирд┐рд╢рд╛рди


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

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА 4096 рддрддреНрд╡реЛрдВ рдХреЗ рдПрдХ рд╕рд░рдгреА рдЖрдХрд╛рд░ рдХреЗ рд╕рд╛рде, рдЦрдВрдб рдореЗрдВ 64 рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреНред рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ, рдХрдИ рдЦрд╛рд▓реА рд░реАрдбрд┐рдВрдЧ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред

рдмрд╛рдЗрдирд░реА рд╣реАрдк рдХрд╛рд░реНрдб рдорд╛рд░реНрдХ


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

рдЗрди рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рд╕реЗ, рдмрд╛рдЗрдирд░реА рд╣реАрдк рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ - рд╢реВрдиреНрдп рддрддреНрд╡ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рднреА рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдП рд╣реИрдВ рдпрд╛ рдирд╣реАрдВ (рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдк рдПрдХ рдкрддреНрдерд░ рднреА рдЧрд┐рд░ рд╕рдХрддреЗ рд╣реИрдВ / рд╕реЛ рд╕рдХрддреЗ рд╣реИрдВ = рдПрдХ рдкреНрд░рддреАрдХреНрд╖рд╛ рд░рдгрдиреАрддрд┐ рд▓рд╛рдЧреВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) рдФрд░ рдмрд╛рдж рдХреЗ рддрддреНрд╡ рдореВрд▓ рд╕рд░рдгреА рдХреЗ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдЦрдВрдбреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВред

рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдХреЛрдИ рджреВрд╕рд░рд╛ рд╕реНрддрд░ рдФрд░ 4096 рддрддреНрд╡реЛрдВ рдХрд╛ рдПрдХ рд╕рд░рдгреА рдЖрдХрд╛рд░ рд╣реИ, рддреЛ рдЦрдВрдб рдореЗрдВ рдареАрдХ рдПрдХ рддрддреНрд╡ рд╢рд╛рдорд┐рд▓ рд╣реИред

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдб рдорд╛рд░реНрдХ рдЫреЛрдЯреЗ рд╕рд░рдгреА рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдмрдбрд╝реЗ рдЖрдХрд╛рд░ рдХреЗ рд▓рд┐рдП рдмрд╛рдЗрдирд░реА рд╣реАрдк рдХрд╛рд░реНрдб рдорд╛рд░реНрдХ ред

рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рд░рдгрдиреАрддрд┐


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

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

рд╣рд╛рд▓рд╛рдБрдХрд┐, рд░рдгрдиреАрддрд┐ рдкреНрд░рддреНрдпреЗрдХ рдорд╛рдорд▓реЗ рдореЗрдВ рднрд┐рдиреНрди рд╣реЛ рд╕рдХрддреА рд╣реИред

рдЯреЛрдЯрдХреЗ рдФрд░ рдЯреЛрдЯрдХреЗ




рдЕрдВрддрд┐рдо рд╡рд┐рд▓рдВрдмрддрд╛ рд╡рд┐рддрд░рдг рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ:



ThrottlingExecutor рдореЗрдВ рд╡рд┐рд▓рдВрдмрддрд╛ рд╡рд┐рддрд░рдг рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо,
рд╕рд╛рдзрд╛рд░рдг рдХрд╛рд░реНрдб рдХрд╛ рдирд┐рд╢рд╛рди, рдЖрдХрд╛рд░ 4096


ThrottlingExecutor рдореЗрдВ рд╡рд┐рд▓рдВрдмрддрд╛ рд╡рд┐рддрд░рдг рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо,
рдмрд╛рдЗрдирд░реА рд╣реАрдк рдкрд░ рдХрд╛рд░реНрдб рдХрд╛ рдирд┐рд╢рд╛рди, рдЖрдХрд╛рд░ 4096

рдПрдХ рдмрд╣реБрдд рд╡рд┐рд░рд▓ рд╕рд░рдгреА рдореЗрдВ:

ThrottlingExecutor рдореЗрдВ рд╡рд┐рд▓рдВрдмрддрд╛ рд╡рд┐рддрд░рдг рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо,
рд╕рд░рд▓ рдХрд╛рд░реНрдб рдЪрд┐рд╣реНрди, рдЖрдХрд╛рд░ 16384


ThrottlingExecutor рдореЗрдВ рд╡рд┐рд▓рдВрдмрддрд╛ рд╡рд┐рддрд░рдг рд╣рд┐рд╕реНрдЯреЛрдЧреНрд░рд╛рдо,
рдмрд╛рдЗрдирд░реА рд╣реАрдк рдкрд░ рдХрд╛рд░реНрдб рдХрд╛ рдирд┐рд╢рд╛рди, рдЖрдХрд╛рд░ 16384

рдЕрдВрдд рддрдХ, рдореИрдВ рдкрд░рдорд╛рдгреБ рд▓рд┐рдВрдХ рдХреЗ рд╕рд░рдгреА рдХреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдЕрд▓рдЧ рд╡реНрдпрд╡рд╣рд╛рд░ рдФрд░ рдкрд░рдорд╛рдгреБ рд╕рд░рдгреА рдХреЗ рд╕рднреА рдХрд╛рд░рдгреЛрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ (рд╡реЗ рджреЗрдЦрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддреЗ рдереЗ рдХрд┐ рдмрд╛рдЗрдирд░реА рд╣реАрдк рд╡рд╛рд▓рд╛ рдкрд░рдорд╛рдгреБ рд╕рд░рдгреА рдмрд╣реБрдд рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛)ред

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

рдкреБрдирд╢реНрдЪ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдЗрд╕ рдмреЗрдВрдЪрдорд╛рд░реНрдХ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдереНрд░реЙрдЯрд▓рд┐рдВрдЧ рдПрдХреНрд╕рд┐рдХреНрдпреВрдЯрд░ рд╕рдорд╛рдзрд╛рдиреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рддреЗ рд╕рдордп, рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓рдЧрднрдЧ 300 ╬╝s рддрдХ рдХрд╛ рд╡рд┐рддрд░рдг рджрд┐рдпрд╛ред

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


All Articles