рдлрд╛рдЗрдЯрд▓реЙрдХ: рдлрд╛рдЗрдЯрд┐рдВрдЧ рдХреЙрд▓рдмреИрдХ рдкреИрдЯрд░реНрди

рдЧрддрд┐рд░реЛрдз рдХреА рд╕реНрдерд┐рддрд┐


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

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

рдЧрддрд┐рд░реЛрдз рдХрд╛ рдПрдХ рдХреНрд▓рд╛рд╕рд┐рдХ рдЙрджрд╛рд╣рд░рдг: рдкрд╣рд▓рд╛ рдзрд╛рдЧрд╛ (рдП) рдореНрдпреВрдЯреЗрдХреНрд╕ рдПрдо 1 рдФрд░ рдлрд┐рд░ рдореНрдпреВрдЯреЗрдХреНрд╕ рдПрдо 2 рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░рд╛ рдзрд╛рдЧрд╛ (рдмреА) рдПрдо 2 рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж, рдПрдо 1 рдореНрдпреВрдЯреЗрдХреНрд╕ред рдЗрди рджреЛрдиреЛрдВ рдзрд╛рд░рд╛рдУрдВ рдХрд╛ рдЖрдкрд╕реА рдЕрд╡рд░реЛрдз рдирд┐рдореНрди рдкреНрд░рдХрд╛рд░ рд╕реЗ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдзрд╛рд░рд╛ A рдХреИрдкреНрдЪрд░ M1, рд╕реНрдЯреНрд░реАрдо B рдХреИрдкреНрдЪрд░ M2, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рджреЛрдиреЛрдВ рдзрд╛рд░рд╛рдПрдВ "рдбреВрдо" рд╣реИрдВ: рди рддреЛ A, M2 рдХреЛ рдкрдХрдбрд╝ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рди рд╣реА рдзрд╛рдЧрд╛ B M1 рдХреЛ рдкрдХрдбрд╝ рд╕рдХрддрд╛ рд╣реИ; рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рджреЛрдиреЛрдВ рдзрд╛рдЧреЗ рдХреЛ рдЕрд╡рд░реБрджреНрдз рдХрд░реЗрдВрдЧреЗред

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

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

рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдгрд╛рд▓реА рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐


рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдЧрддрд┐рд░реЛрдз рдХреА рдШрдЯрдирд╛ рдХреЗ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

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

рд╡рд░реНрдгрд┐рдд рдЪрд┐рддреНрд░ рдореЗрдВ рдХреБрдЫ рд╕реНрдкрд░реНрд╢ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ (рдЬрдЯрд┐рд▓ рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдореЗрдВ рдРрд╕рд╛ рд╣реА рд╣реЛрддрд╛ рд╣реИ):

рд╡рд╣ рд╕рдм рд╣реИред рдпрд╣ рдПрдХ рдРрд╕реА рд╕реНрдерд┐рддрд┐ рдмрди рдЧрдИ рдЬрд┐рд╕рдореЗрдВ рдЧрддрд┐рд░реЛрдз рд╕рдВрднрд╡ рд╣реИред рдпрд╣ 100% рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдирд╣реАрдВ рд╣реЛрдЧрд╛ (рдХреЗрд╡рд▓ рдПрдХ рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреЛ рдкрдХрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рднрд╛рдЧ рд▓реЗрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдЧрддрд┐рд╢реАрд▓рддрд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ), рдФрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЦреЛрдЬ рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рджреЛ рддрд░реАрдХреЗ рд╣реИрдВред

рд╡рд┐рдзрд┐ 1: рд▓реЙрдХ рдСрд░реНрдбрд░ рдмрджрд▓реЗрдВ


рд╡рд░реНрдХрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдЕрдкрдиреЗ рдЖрдВрддрд░рд┐рдХ рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреЛ рд▓реЙрдХ рдХрд░рдиреЗ рдФрд░ рдЕрдирд▓реЙрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдлрд╝рдВрдХреНрд╢рди рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛, рдФрд░ рдЙрдкрднреЛрдХреНрддрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдкрдВрдЬреАрдХрд░рдг рдХрд░реЗрдЧрд╛:
  1. рдкрд╣рд▓реЗ (рдЕрдЧреНрд░рд┐рдо рдореЗрдВ), рд╡рд░реНрдХрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЖрдВрддрд░рд┐рдХ рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреЛ рд▓реЙрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  2. рдЙрд╕рдХреЗ рдмрд╛рдж, рдЙрдкрднреЛрдХреНрддрд╛ рдореНрдпреВрдЯреЗрдХреНрд╕ рдПрдо рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдХрд░реЗрдЧрд╛ред
  3. рдЙрдкрднреЛрдХреНрддрд╛ рд╢реНрд░рдорд┐рдХ рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рдкрдВрдЬреАрдХрд░рдг рдХрд░реЗрдЧрд╛; рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЕрдВрджрд░ рдЖрдВрддрд░рд┐рдХ рдореНрдпреВрдЯреЗрдХреНрд╕ рдкрд░ рдХрдмреНрдЬрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рдиреБрдХрд╕рд╛рди рд╕реНрдкрд╖реНрдЯ рд╣реИрдВ:

рд╡рд┐рдзрд┐ 2: рдЙрдкрднреЛрдХреНрддрд╛рдУрдВ рдХреЛ рдбреЗрдЯрд╛ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рддреЗ рд╕рдордп рдореНрдпреВрдЯреЗрдХреНрд╕ рдХреЛ рдмреНрд▓реЙрдХ рди рдХрд░реЗрдВ


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

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

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

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рд▓рдЧрднрдЧ рдирд┐рд░реНрдгрдп рдкрд░ рдЖ рдЧрдП:

рдпрд╣рд╛рдБ рдЯрд░реНрдирдХреА рд╕рдорд╛рдзрд╛рди рд╣реИред рдЗрд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП, рдПрдХ рдФрд░ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдПрдХ "рдХрдВрдбреАрд╢рди рд╡реЗрд░рд┐рдПрдмрд▓" (рдЕрдВрдЧреНрд░реЗрдЬреА рдХрдВрдбреАрд╢рди рд╡реЗрд░рд┐рдПрдмрд▓):

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

Qt рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдЯреВрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди


рд╣реИрдбрд░ рдлрд╝рд╛рдЗрд▓:
class ICallback { public: virtual void dataReady(QByteArray data) = 0; }; class Worker : public QThread { public: Worker(); void registerCallback(ICallback *callback); void unregisterCallback(ICallback *callback); protected: virtual void run(); private: QMutex _mutex; QWaitCondition _wait; bool _callingNow; QLinkedList<ICallback *> _callbacks; }; 


рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди:
 Worker::Worker() : QThread(), _mutex(QMutex::NonRecursive), _callingNow(false) { ... } void Worker::registerCallback(ICallback *callback) { QMutexLocker locker(&_mutex); _callbacks.append(callback); } void Worker::unregisterCallback(ICallback *callback) { QMutexLocker locker(&_mutex); _callbacks.removeOne(callback); if(QThread::currentThread()!=this) { while(_callingNow) _wait.wait(&_mutex); } } void Worker::run() { while(...) { QByteArray data; ... QLinkedList<ICallback *> callbacksCopy; _mutex.lock(); _callingNow=true; callbacksCopy=_callbacks; _mutex.unlock(); for(QLinkedList<Callback *>::const_iterator it=callbacksCopy.begin(); it!=callbacksCopy.end(); ++it) { (*it)->dataReady(data); } _mutex.lock(); _callingNow=false; _wait.wakeAll(); _mutex.unlock(); } } 

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


All Articles