рдПрдкреЛрд▓ рдФрд░ рд╡рд┐рдВрдбреЛрдЬ рдЖрдИрдУ рдХрдореНрдкреНрд▓реАрд╢рди рдкреЛрд░реНрдЯреНрд╕: рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдЕрдВрддрд░

рдкрд░рд┐рдЪрдп


рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ, рд╣рдо рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдкреВрд░реНрдг рдкреЛрд░реНрдЯ (рд╡рд┐рдВрдбреЛрдЬ I / O рдкреВрд░реНрдгрддрд╛ рдкреЛрд░реНрдЯ рдпрд╛ IOCP) рд╕реЗ рдПрдкреЛрд▓ рддрдВрддреНрд░ рдХреИрд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдЙрдЪреНрдЪ-рдкреНрд░рджрд░реНрд╢рди рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛рдУрдВ рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░реНрд╕ рдХреЛ рд╡рд┐рдВрдбреЛрдЬ рд╕реЗ рд▓рд┐рдирдХреНрд╕ рдпрд╛ рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдиреЗрдЯрд╡рд░реНрдХ рдХреЛрдбрд┐рдВрдЧ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдбрд┐рдЬрд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВред

рдпреЗ рджреЛрдиреЛрдВ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдкреНрд░рднрд╛рд╡реА рд╣реИрдВред

рд╡реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдмрд┐рдВрджреБрдУрдВ рдореЗрдВ рдЕрдиреНрдп рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реИрдВ:

  • рджреЗрдЦреЗ рдЧрдП рд╡рд┐рд╡рд░рдгрдХрд░реНрддрд╛рдУрдВ рдФрд░ рдИрд╡реЗрдВрдЯ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рдХреБрд▓ рд╕рдВрдЦреНрдпрд╛ рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИ (рдХреБрд▓ рд╕рд┐рд╕реНрдЯрдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░)
  • рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд╛рдлреА рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИ - рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрди рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдПрди + 1 рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рдХрдо рд╕рдордп рдФрд░ рд╕рдВрд╕рд╛рдзрди рд▓рдЧреЗрдЧрд╛
  • рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдереНрд░реЗрдб рдкреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ
  • рдПрдХрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИред рд╕рднреА рд▓рд╛рдн 1000+ рдХрдиреЗрдХреНрд╢рди рдХреЗ рд╕рд╛рде рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд▓рдЧрддреЗ рд╣реИрдВ

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

(рдЕрдкрдбреЗрдЯ: рдпрд╣ рд▓реЗрдЦ рдПрдХ рдЕрдиреБрд╡рд╛рдж рд╣реИ )


рд╕реВрдЪрдирд╛рдУрдВ рдХрд╛ рдкреНрд░рдХрд╛рд░


рдПрдкреЛрд▓ рдФрд░ IOCP рдХреЗ рдмреАрдЪ рдкрд╣рд▓рд╛ рдФрд░ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдХрд┐рд╕реА рдШрдЯрдирд╛ рд╕реЗ рдХреИрд╕реЗ рдЕрд╡рдЧрдд рд╣реЛрддреЗ рд╣реИрдВред

  • рдПрдкреЛрд▓ рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЬрдм рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИ - " рдЕрдм рдЖрдк рдбреЗрдЯрд╛ рдкрдврд╝рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ "
  • IOCP рдЖрдкрдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдзрд┐рдд рдСрдкрд░реЗрд╢рди рдкреВрд░рд╛ рд╣реЛрдиреЗ рдкрд░ - " рдЖрдкрдиреЗ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рд╣реИ рдФрд░ рдпрд╣рд╛рдБ рдпрд╣ рдкрдврд╝рд╛ рд╣реИ "

рдПрдкреЛрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп:

  • рдпрд╣ рддрдп рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреМрди рд╕рд╛ рдСрдкрд░реЗрд╢рди рдХрд┐рд╕реА рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ (рдкрдврд╝реЗрдВ, рд▓рд┐рдЦреЗрдВ, рдпрд╛ рджреЛрдиреЛрдВ)
  • Epoll_ctl рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдкрдпреБрдХреНрдд рдорд╛рд╕реНрдХ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ
  • рдХреЙрд▓ epoll_wait, рдЬреЛ рд╡рд░реНрддрдорд╛рди рдереНрд░реЗрдб рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдЕрдкреЗрдХреНрд╖рд┐рдд рдШрдЯрдирд╛ рдирд╣реАрдВ рд╣реЛрддреА (рдпрд╛ рд╕рдордп рд╕рдорд╛рдкреНрдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ)
  • рдкреНрд░рд╛рдкреНрдд рдШрдЯрдирд╛рдУрдВ рдкрд░ рдкрд╛рдмрдВрджреА, рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рд▓реЗрддреА рд╣реИ (data.ptr рдлрд╝реАрд▓реНрдб рд╕реЗ)
  • рдЕрдкрдиреЗ рдкреНрд░рдХрд╛рд░ (рдкрдврд╝рдиреЗ, рд▓рд┐рдЦрдиреЗ, рдпрд╛ рджреЛрдиреЛрдВ рдХрд╛рд░реНрдпреЛрдВ) рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдШрдЯрдирд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреА рдкрд╣рд▓ рдХрд░рддрд╛ рд╣реИ
  • рдСрдкрд░реЗрд╢рди рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж (рддреБрд░рдВрдд рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП), рдпрд╣ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд / рднреЗрдЬреЗ рдЬрд╛рдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддрд╛ рд░рд╣рддрд╛ рд╣реИ

IOCP рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп:

  • рдХреБрдЫ рдбрд┐рд╕реНрдХреНрд░рд┐рдкреНрдЯрд░ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдСрдкрд░реЗрд╢рди (ReadFile рдпрд╛ WriteFile) рдХреА рд╢реБрд░реБрдЖрдд рдХрд░рддрд╛ рд╣реИ, рдЧреИрд░-рдЦрд╛рд▓реА OVERLAPPED рддрд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдПред рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрддрд╛рд░ рдореЗрдВ рдЦреБрдж рдХреЛ рдЗрд╕ рдСрдкрд░реЗрд╢рди рдХреЛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдФрд░ рддреБрд░рдВрдд рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ (рд░рд┐рдЯрд░реНрди рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдСрдкрд░реЗрд╢рди рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд┐рдП рдмрд┐рдирд╛)ред
  • GetQueuedCompletionStatus () рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ , рдЬреЛ рд╡рд░реНрддрдорд╛рди рдереНрд░реЗрдб рдХреЛ рддрдм рддрдХ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИ рдЬрдм рддрдХ рдХрд┐ рдкрд╣рд▓реЗ рдЬреЛрдбрд╝реЗ рдЧрдП рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рдПрдХ рдкреВрд░рд╛ рди рд╣реЛ рдЬрд╛рдПред рдпрджрд┐ рдХрдИ рдкреВрд░реЗ рд╣реЛ рдЧрдП рд╣реИрдВ, рддреЛ рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  • рдпрд╣ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдХреБрдВрдЬреА рдФрд░ OVERLAPPED рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реВрдЪрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдСрдкрд░реЗрд╢рди рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред
  • рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд / рднреЗрдЬреЗ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрддрд╛ рд╣реИ

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

рдбреЗрдЯрд╛ рдЙрдкрд▓рдмреНрдзрддрд╛


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

  • рдПрдкреЛрд▓ рдЗрди рдмрдлрд╝рд░реНрд╕ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдЪрд┐рдВрддрд┐рдд рдирд╣реАрдВ рд╣реИ рдФрд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
  • IOCP рдЗрди рдмрдлрд╝рд░реНрд╕ рдХреА рдЬрд░реВрд░рдд рд╣реИред IOCP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреВрд░рд╛ рдмрд┐рдВрджреБ "рдореБрдЭреЗ рдЗрд╕ рдмрдХреЗрдЯ рдореЗрдВ рдЗрд╕ рд╕реЙрдХреЗрдЯ рд╕реЗ 256 рдмрд╛рдЗрдЯреНрд╕ рдкрдврд╝рдиреЗ" рдХреА рд╢реИрд▓реА рдореЗрдВ рдХрд╛рдо рд╣реИред рд╣рдордиреЗ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдз рдХрд╛ рдЧрдарди рдХрд┐рдпрд╛, рдЗрд╕реЗ рдУрдПрд╕ рдХреЛ рджрд┐рдпрд╛, рд╣рдо рдСрдкрд░реЗрд╢рди рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рдФрд░ рдЗрд╕ рд╕рдордп рдмрдлрд░ рдХреЛ рд╕реНрдкрд░реНрд╢ рди рдХрд░реЗрдВ!)

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

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

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

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

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

рдкреНрд░рддреАрдХреНрд╖рд╛ рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓реЗрдВ


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

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЕрдкреЗрдХреНрд╖рд┐рдд рдШрдЯрдирд╛рдУрдВ рдХреЛ рдмрджрд▓рдирд╛ рдпрд╛ рд╣рдЯрд╛рдирд╛ рдЕрд▓рдЧ рд╣реИред epoll рдЕрднреА рднреА рдЖрдкрдХреЛ epoll_ctl (рдЕрдиреНрдп рдереНрд░реЗрдбреНрд╕ рд╕рд╣рд┐рдд) рдХреЙрд▓ рдХрд░рдХреЗ рд╕реНрдерд┐рддрд┐ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред IOCP рдХрдард┐рди рд╣реЛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ I / O рдСрдкрд░реЗрд╢рди рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдИ рдЧрдИ рдереА, рддреЛ рдЗрд╕реЗ CancelIo () рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд░рджреНрдж рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рд╕реЗ рднреА рдмрджрддрд░, рдХреЗрд╡рд▓ рд╡рд╣реА рдзрд╛рдЧрд╛ рдЬрд┐рд╕рдиреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдСрдкрд░реЗрд╢рди рд╢реБрд░реВ рдХрд┐рдпрд╛ рдерд╛, рдЗрд╕ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рд╕реАрдорд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рдХреЗ рдЖрдпреЛрдЬрди рдХреЗ рд╕рднреА рд╡рд┐рдЪрд╛рд░ рдЯреВрдЯ рдЧрдП рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, CancelIo () рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рднреА, рд╣рдо рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдСрдкрд░реЗрд╢рди рддреБрд░рдВрдд рд░рджреНрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛ (рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рдЧрддрд┐ рдореЗрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдпрд╣ OVERLAPPED рд╕рдВрд░рдЪрдирд╛ рдФрд░ рдкрдврд╝рдиреЗ / рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдмрдлрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ)ред рдСрдкрд░реЗрд╢рди рдкреВрд░рд╛ рд╣реЛрдиреЗ рддрдХ рд╣рдореЗрдВ рдЕрднреА рднреА рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ (рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо GetOverlappedResult () рдлрд╝рдВрдХреНрд╢рди рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛) рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рд╣рдо рдмрдлрд░ рдХреЛ рдореБрдХреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЖрдИрдУрд╕реАрдкреА рдХреЗ рд╕рд╛рде рдПрдХ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдПрдХ рдмрд╛рд░ рдПрдХ рдСрдкрд░реЗрд╢рди рдХреЛ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЗрд╕реЗ рдЕрдм рдирд╣реАрдВ рдмрджрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдирд┐рд░реНрдзрд╛рд░рд┐рдд ReadFile рдЕрдиреБрд░реЛрдз рдХреЛ рдмрджрд▓ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдХрд╣ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдХреЗрд╡рд▓ 10 рдмрд╛рдЗрдЯреНрд╕ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, 8192 рдирд╣реАрдВред рдЖрдкрдХреЛ рд╡рд░реНрддрдорд╛рди рдСрдкрд░реЗрд╢рди рдХреЛ рд░рджреНрдж рдХрд░рдиреЗ рдФрд░ рдПрдХ рдирдпрд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдПрдкреЛрд▓ рдХреЗ рд▓рд┐рдП рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИ, рдЬрдм рдЖрдк рдЗрдВрддрдЬрд╛рд░ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдХреЛрдИ рдкрддрд╛ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрд╕ рд╕рдордп рдХрд┐рддрдирд╛ рдбреЗрдЯрд╛ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрдм рд╕реВрдЪрдирд╛ рдкрдврд╝рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрдирд╛ рдЖрддреА рд╣реИред

рдЧреИрд░-рдЕрд╡рд░реБрджреНрдз рдХрдиреЗрдХреНрд╢рди


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

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

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

рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ, рд╕реНрд╡реАрдХрд╛рд░ () рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ IOCP рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдПрдХ рдПрдХреНрд╕реЗрдкреНрдЯ рдлрд╝рдВрдХреНрд╢рди рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рднреВрдорд┐рдХрд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧреИрд░-рдЕрд╡рд░реЛрдзрдХ рдХрдиреЗрдХреНрд╢рди рд╕реЗ рдЕрд╕рдВрдмрдВрдзрд┐рдд рд╣реИред рдпрд╣ рдПрдХ "рдЧреИрд░-рдЕрд╡рд░реЛрдзрдХ рд╕реНрд╡реАрдХрд╛рд░" рдирд╣реАрдВ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдХрдиреЗрдХреНрдЯ / ConnectEx рдХреЗ рд╕рд╛рде рд╕рд╛рджреГрд╢реНрдп рджреНрд╡рд╛рд░рд╛ рд╕реЛрдЪ рд╕рдХрддреЗ рд╣реИрдВред

рдШрдЯрдирд╛ рдХреА рдирд┐рдЧрд░рд╛рдиреА


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

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

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

  1. рд╕реЙрдХреЗрдЯ рдХреНрд▓рд╛рд╕ рдиреЗ ReadFile рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ред рдереНрд░реЗрдбреНрд╕ A рдФрд░ B GetOverlappedResult () рдХреЙрд▓ рдХрд░рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВ
  2. рд░реАрдб рдСрдкрд░реЗрд╢рди рдкреВрд░рд╛ рд╣реБрдЖ, рдереНрд░реЗрдб рдП рдХреЛ рдПрдХ рд╕реВрдЪрдирд╛ рдорд┐рд▓реА рдФрд░ рдкреНрд░рд╛рдкреНрдд рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЙрдХреЗрдЯ рдХреНрд▓рд╛рд╕ рд╡рд┐рдзрд┐ рдХрд╣рд╛ рдЧрдпрд╛
  3. рд╕реЙрдХреЗрдЯ рдХреНрд▓рд╛рд╕ рдиреЗ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рдбреЗрдЯрд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИ, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреА рдЙрдореНрдореАрдж рдХрд░рдиреА рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдПрдХ рдФрд░ рдкрдврд╝рдиреЗ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реИред
  4. рдпрд╣ рдЕрдиреБрд░реЛрдз рддреБрд░рдВрдд рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдбреЗрдЯрд╛ рдкрд╣рд▓реЗ рд╣реА рдЖ рдЪреБрдХрд╛ рд╣реИ, рдУрдПрд╕ рдЗрд╕реЗ рддреБрд░рдВрдд рднреЗрдЬ рд╕рдХрддрд╛ рд╣реИ)ред рд╕реНрдЯреНрд░реАрдо рдмреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдбреЗрдЯрд╛ рдкрдврд╝рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕реЗ рд╕реЙрдХреЗрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ рднреЗрдЬрддрд╛ рд╣реИред
  5. рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рд╕реЙрдХреЗрдЯ рдХреНрд▓рд╛рд╕ рдореЗрдВ рдбреЗрдЯрд╛ рдкрдврд╝рдиреЗ рдХреЗ рдХрд╛рд░реНрдп рдХреЛ рдП рдФрд░ рдмреА рджреЛрдиреЛрдВ рдкреНрд░рд╡рд╛рд╣ рд╕реЗ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдпрд╛ рддреЛ рдбреЗрдЯрд╛ рднреНрд░рд╖реНрдЯрд╛рдЪрд╛рд░ (рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛), рдпрд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдард╣рд░рд╛рд╡ (рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп) рдХреЗ рдЬреЛрдЦрд┐рдо рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред

рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдЦреИрд░, рдЕрдЧрд░ рд╡рд╣ рдЕрдХреЗрд▓рд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ 100,000 рдХрдиреЗрдХреНрд╢рди рд╣реИрдВ рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдореЗрдВ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛрдЧрд╛, рддреЛ рдпрд╣ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЛ рдЧрдВрднреАрд░рддрд╛ рд╕реЗ рд╣рд┐рдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЕрдЧрд░ рдЖрдк рдЕрднреА рднреА 2 рд░рдЦрддреЗ рд╣реИрдВ (рдкрдврд╝рдиреЗ рдФрд░ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ)? рдФрд░ рднреА рдмреБрд░рд╛ред

рдпрд╣рд╛рдВ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рдПрдХ рдХрдиреЗрдХреНрд╢рди рдкреНрд░рдмрдВрдзрдХ рд╡рд░реНрдЧ рдмрдирд╛рдирд╛ рд╣реИ рдЬреЛ рдХрдиреЗрдХреНрд╢рди рд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП ReadFile рдпрд╛ WriteFile рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реЛрдЧрд╛ред рдпрд╣ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдб рдХреЛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рдмрдирд╛рддрд╛ рд╣реИред

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


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

рдЬрдм рдПрдХ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рд╕реЗ рджреВрд╕рд░реЗ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдкрд░ рдкреЛрд░реНрдЯрд┐рдВрдЧ рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдорддреМрд░ рдкрд░ IOCP рдХреЛрдб рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рд╣реИред

рд╕реБрдЭрд╛рд╡:

  • рдпрджрд┐ рдЖрдкрдХрд╛ рдХрд╛рд░реНрдп рдПрдХ рдХреНрд░реЙрд╕-рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗрд╡рд╛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ IOCP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ Windows рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрдХ рдмрд╛рд░ рдЬрдм рд╕рдм рдХреБрдЫ рддреИрдпрд╛рд░ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдбреАрдмрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ - рдПрдХ рддреБрдЪреНрдЫ рдПрдкреЛрд▓-рдмреИрдХреЗрдВрдб рдЬреЛрдбрд╝реЗрдВред
  • рдЖрдкрдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдХрдХреНрд╖рд╛рдУрдВ рдХреЗ рдХрдиреЗрдХреНрд╢рди рдФрд░ ConnectionMgr рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдЬреЛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдПрдкреЛрд▓ рдФрд░ IOCP рддрд░реНрдХ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдХреЛрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдмреБрд░рд╛ рд▓рдЧрддрд╛ рд╣реИ рдФрд░ рдЙрдирдХреЗ рдЕрдВрджрд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд▓реЙрдЬрд┐рдХ рдХреЗ рд╕рд╛рде рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ #ifdef рдХрд╛ рдПрдХ рдЧреБрдЪреНрдЫрд╛ рд╣реЛрддрд╛ рд╣реИред рдмреЗрд╣рддрд░ рдЖрдзрд╛рд░ рд╡рд░реНрдЧ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирд╕реЗ рдЕрд▓рдЧ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рджреЗрддреЗ рд╣реИрдВред рдмреЗрд╕ рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ, рдЖрдк рдХреБрдЫ рд╕рд╛рдорд╛рдиреНрдп рддрд░реАрдХреЗ рдпрд╛ рдбреЗрдЯрд╛ рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрджрд┐ рдХреЛрдИ рд╣реЛред
  • рдХрдиреЗрдХреНрд╢рди рд╡рд░реНрдЧ рдХреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдЬреАрд╡рдирдХрд╛рд▓ рдХреА рдмрд╛рд░реАрдХреА рд╕реЗ рдирд┐рдЧрд░рд╛рдиреА рдХрд░реЗрдВ (рдпрд╛ рдЬреЛ рднреА рдЖрдк рдЙрд╕ рд╡рд░реНрдЧ рдХреЛ рдХрд╣рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд / рднреЗрдЬреЗ рдЧрдП рдбреЗрдЯрд╛ рдХреЗ рд▓рд┐рдП рдмрдлрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ)ред рдЗрд╕реЗ рддрдм рддрдХ рдирд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм рддрдХ рдХрд┐ рдЗрд╕рдХреЗ рдмрдлрд╝рд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реАрдб / рд░рд╛рдЗрдЯ рдСрдкрд░реЗрд╢рди рдкреВрд░рд╛ рди рд╣реЛ рдЬрд╛рдПред

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


All Articles