
рдпрд╣ рд▓реЗрдЦ рдЕрдиреБрднрд╡реА рдкрд╛рдЗрдерди рдЯреИрдорд░реНрд╕ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ, рдЬрд┐рдирдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд╛рдБрдк рдХреА рдЧреЗрдВрдж рдХреЛ рдЦреЛрд▓рдирд╛ рдмрдЪреНрдЪреЛрдВ рдХреА рдорд╕реНрддреА рд╣реИ, рдмрд▓реНрдХрд┐ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЕрдЬрдЧрд░ рдкрд░ рдЭреБрдХреА рд╣реБрдИ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╕рддрд╣реА рдЕрд╡рд▓реЛрдХрди рд╣реИред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкрд╛рдпрдерди рдореЗрдВ рдорд▓реНрдЯреАрдереНрд░реЗрдбрд┐рдВрдЧ рдХреЗ рд╡рд┐рд╖рдп рдкрд░ рд░реВрд╕реА рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЕрдЬрдЧрд░ рдЬреЛ рдХреБрдЫ рднреА рдирд╣реАрдВ рд╕реБрдирддреЗ рдереЗ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЬреАрдЖрдИрдПрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ, рдореЗрд░реЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░рд┐рдХ рдирд┐рдпрдорд┐рддрддрд╛ рдХреЗ рд╕рд╛рде рдореЗрд░реЗ рдкрд╛рд╕ рдЖрдирд╛ рд╢реБрд░реВ рд╣реБрдЖред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдмрд╣реБрдореВрддреНрд░ рдЕрдЬрдЧрд░ рдХреА рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛, рдЖрдкрдХреЛ рдмрддрд╛рдПрдЧрд╛ рдХрд┐ рдЬреАрдЖрдИрдПрд▓ рдХреНрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рд░рд╣рдирд╛ рд╣реИ (рдпрд╛ рдЗрд╕рдХреЗ рдмрд┐рдирд╛) рдФрд░ рдмрд╣реБрдд рдХреБрдЫред
рдЕрдЬрдЧрд░ рдПрдХ рдЖрдХрд░реНрд╖рдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдХрдИ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рддрд┐рдорд╛рдиреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреА рд╣реИред рдЕрдзрд┐рдХрд╛рдВрд╢ рдХрд╛рд░реНрдп рдЬреЛ рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрд╕рд╛рдиреА рд╕реЗ, рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдврдВрдЧ рд╕реЗ рдФрд░ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд░реВрдк рд╕реЗ рдпрд╣рд╛рдВ рд╣рд▓ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдЗрди рд╕рднреА рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдПрдХ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рд╕рдорд╛рдзрд╛рди рдЕрдХреНрд╕рд░ рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдо рдЖрдорддреМрд░ рдкрд░ рдЕрдиреБрдорд╛рдирд┐рдд рдФрд░ рдбрд┐рдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рди рд╣реЛрддреЗ рд╣реИрдВред рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдФрд░ рдмрд╣реБ-рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдирд╣реАрдВ рд╣реИред
рдмрд╣реБрд╡рд┐рдХрд▓реНрдкреА рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ
рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ
рдереНрд░реЗрдбрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рд╣реИ, рдФрд░ рдЗрд╕рдореЗрдВ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЪрд╛рд╣рд┐рдП: рдЗрд╕рдореЗрдВ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХрд╛рд░ рдХреЗ рддрд╛рд▓реЗ, рдПрдХ рд╕реЗрдореАрдлреЛрд░ рдФрд░ рдПрдХ рдШрдЯрдирд╛ рддрдВрддреНрд░ рд╣реИрдВред рдПрдХ рд╢рдмреНрдж рдореЗрдВ - рдЬреЛ рдмрд╣реБрд╕рдВрдЦреНрдпрдХ рдмрд╣реБрд╕рд╛рдВрд╕реНрдХреГрддрд┐рдХ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЗрди рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдЬреЛ 2 рдзрд╛рдЧреЗ рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИред рдПрдХ рдзрд╛рдЧрд╛ рджрд╕ "0" рд▓рд┐рдЦрддрд╛ рд╣реИ, рджреВрд╕рд░рд╛ рджрд╕ "1" рд▓рд┐рдЦрддрд╛ рд╣реИ, рдФрд░
рд╕рдЦреНрддреА рд╕реЗ рдмрджрд▓реЗ рдореЗрдВред
import threading def writer(x, event_for_wait, event_for_set): for i in xrange(10): event_for_wait.wait()
рдХреЛрдИ рдЬрд╛рджреВ рдпрд╛ рд╡реВрдбреВ рдХреЛрдб рдирд╣реАрдВред рдХреЛрдб рд╕реНрдкрд╖реНрдЯ рдФрд░ рд╕реБрд╕рдВрдЧрдд рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рдордиреЗ рдПрдХ рдлрд╝рдВрдХреНрд╢рди рд╕реЗ рдПрдХ рд╕реНрдЯреНрд░реАрдо рдмрдирд╛рдИред рдЫреЛрдЯреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдпрд╣ рдХреЛрдб рднреА рдХрд╛рдлреА рд▓рдЪреАрд▓рд╛ рд╣реИред рдорд╛рди рд▓реЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рддреАрд╕рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ рдЬреЛ "2" рд▓рд┐рдЦрддреА рд╣реИ, рдлрд┐рд░ рдХреЛрдб рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
import threading def writer(x, event_for_wait, event_for_set): for i in xrange(10): event_for_wait.wait()
рд╣рдордиреЗ рдПрдХ рдирдИ рдШрдЯрдирд╛, рдПрдХ рдирдпрд╛ рдзрд╛рдЧрд╛ рдЬреЛрдбрд╝рд╛ рдФрд░ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдереЛрдбрд╝рд╛ рдмрджрд▓ рджрд┐рдпрд╛
рдереНрд░реЗрдбреНрд╕ рд╢реБрд░реВ (рдмреЗрд╢рдХ, рдЖрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЕрдзрд┐рдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдорд╛рдзрд╛рди рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, MapReduce, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИ)ред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдЕрднреА рднреА рдХреЛрдИ рдЬрд╛рджреВ рдирд╣реАрдВ рд╣реИред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рд╣реИред рдФрд░ рдЖрдЧреЗ рдЪрд▓рддреЗ рд╣реИрдВред
рд╡реИрд╢реНрд╡рд┐рдХ рджреБрднрд╛рд╖рд┐рдпрд╛ рддрд╛рд▓рд╛
рдзрд╛рдЧреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рджреЛ рд╕рдмрд╕реЗ рдЖрдо рдХрд╛рд░рдг рд╣реИрдВ: рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЖрдзреБрдирд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдорд▓реНрдЯреА-рдХреЛрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рджрдХреНрд╖рддрд╛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рдЗрд╕рд▓рд┐рдП, рдХрд╛рд░реНрдпрдХреНрд░рдо рдкреНрд░рджрд░реНрд╢рди;
рджреВрд╕рд░реЗ, рдЕрдЧрд░ рд╣рдореЗрдВ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рддрд░реНрдХ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдкреВрд░реНрдг рдпрд╛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдкрд┐рдВрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо)ред
рдкрд╣рд▓реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдЧреНрд▓реЛрдмрд▓ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рд▓реЙрдХ (рдпрд╛ рд╢реЙрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрдЖрдИрдПрд▓) рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдпрдерди рдХреА рдПрдХ рд╕реАрдорд╛ (рдпрд╛ рдЗрд╕рдХреЗ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд░реВрдк рдореЗрдВ рд╕реАрдкреАрдереЙрди) рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЬреАрдЖрдИрдПрд▓ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рднреА рд╕рдордп, рдкреНрд░реЛрд╕реЗрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдХреЗрд╡рд▓ рдПрдХ рдзрд╛рдЧреЗ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЪрд░ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рдереНрд░реЗрдб рдХреЗ рдмреАрдЪ рдХреЛрдИ рд╕рдВрдШрд░реНрд╖ рди рд╣реЛред рдирд┐рд╖реНрдкрд╛рджрди рдпреЛрдЧреНрдп рдзрд╛рдЧрд╛ рдкреВрд░реЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдореЗрдВ рдкрд╣реБрдВрдЪ рдЬрд╛рддрд╛ рд╣реИред рдкрд╛рдпрдерди рдореЗрдВ рдзрд╛рдЧрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдпрд╣ рд╕реБрд╡рд┐рдзрд╛ рдереНрд░реЗрдбреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХреЛ рд╕рд░рд▓ рдХрд░рддреА рд╣реИ рдФрд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдереНрд░реЗрдб рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИред
рд▓реЗрдХрд┐рди рдПрдХ рд╕реВрдХреНрд╖реНрдо рдмрд┐рдВрджреБ рд╣реИ: рдРрд╕рд╛ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рд╕рдордп рдХрд╛рдо рдХрд░реЗрдЧрд╛ рдЬреИрд╕реЗ рдПрдХрд▓-рдереНрд░реЗрдбреЗрдб рдЕрдиреБрдкреНрд░рдпреЛрдЧ, рдПрдХ рд╣реА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рдпрд╛ рд╕реАрдкреАрдпреВ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рд╕рдордп рдХреЗ рдпреЛрдЧ рдХреЗ рд▓рд┐рдПред рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рд╣рдо рдПрдХ рдЕрдкреНрд░рд┐рдп рдкреНрд░рднрд╛рд╡ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
with open('test1.txt', 'w') as fout: for i in xrange(1000000): print >> fout, 1
рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗрд╡рд▓ рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП "1" рдХреА рдПрдХ рд▓рд╛рдЦ рдкрдВрдХреНрддрд┐рдпрд╛рдБ рд▓рд┐рдЦрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдореЗрд░реЗ рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ ~ 0.35 рд╕реЗрдХрдВрдб рдореЗрдВ рдХрд░рддрд╛ рд╣реИред
рдПрдХ рдЕрдиреНрдп рдХрд╛рд░реНрдпрдХреНрд░рдо рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ:
from threading import Thread def writer(filename, n): with open(filename, 'w') as fout: for i in xrange(n): print >> fout, 1 t1 = Thread(target=writer, args=('test2.txt', 500000,)) t2 = Thread(target=writer, args=('test3.txt', 500000,)) t1.start() t2.start() t1.join() t2.join()
рдпрд╣ рдкреНрд░реЛрдЧреНрд░рд╛рдо 2 рдереНрд░реЗрдб рдмрдирд╛рддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рдореЗрдВ, рд╡рд╣ рдПрдХ рдЕрд▓рдЧ рдлрд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрддреА рд╣реИ "1" рдХреА рдПрдХ рд▓рд╛рдЦ рд▓рд╛рдЗрдиреЗрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдХрд╛рд░реНрдп рдХреА рдорд╛рддреНрд░рд╛ рдкрд┐рдЫрд▓реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рдорд╛рди рд╣реИред рд▓реЗрдХрд┐рди рд╕рдордп рдХреЗ рд╕рд╛рде, рдпрд╣рд╛рдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдо 0.7 рд╕реЗрдХрдВрдб рд╕реЗ рд▓реЗрдХрд░ 7 рд╕реЗрдХрдВрдб рддрдХ рдЪрд▓ рд╕рдХрддрд╛ рд╣реИред рдРрд╕рд╛ рдХреНрдпреЛрдВ рд╣реЛ рд░рд╣рд╛ рд╣реИ?
рдпрд╣ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдЬрдм рдПрдХ рдереНрд░реЗрдб рдХреЛ рд╕реАрдкреАрдпреВ рд╕рдВрд╕рд╛рдзрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рдпрд╣ рдЬреАрдЖрдИрдПрд▓ рдХреЛ рдореБрдХреНрдд рдХрд░ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЙрд╕ рд╕рдордп рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдФрд░ рдПрдХ рдФрд░ рдереНрд░реЗрдб рджреЛрдиреЛрдВ рджреНрд╡рд╛рд░рд╛ рдФрд░ рдореБрдЦреНрдп рдзрд╛рдЧрд╛ рднреА рдЖрдЬрд╝рдорд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо, рдпрд╣ рдЬрд╛рдирддреЗ рд╣реБрдП рдХрд┐ рдХрдИ рдХреЛрд░ рд╣реИрдВ, рдХреЛрд░ рдХреЗ рдмреАрдЪ рдзрд╛рдЧреЗ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдкреНрд░рдпрд╛рд╕ рд╕реЗ рд╕рдм рдХреБрдЫ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред
UPD: рдлрд┐рд▓рд╣рд╛рд▓ рдкрд╛рдпрдерди 3.2 рдореЗрдВ GIL рдХрд╛ рдмреЗрд╣рддрд░ рдХреНрд░рд┐рдпрд╛рдиреНрд╡рдпрди рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╣рд▓ рд╣реЛ рдЬрд╛рддреА рд╣реИ, рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ, рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдирд┐рдпрдВрддреНрд░рдг рдЦреЛрдиреЗ рдХреЗ рдмрд╛рдж рдкреНрд░рддреНрдпреЗрдХ рдереНрд░реЗрдб рдХреЛ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдХрдо рд╕рдордп рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рд╣реЛрддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рд╡рд╣ GIL рдкрд░ рдлрд┐рд░ рд╕реЗ рдХрдмреНрдЬрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рд╡рд╣рд╛рдБ рд╣реИ) рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рдЕрдЪреНрдЫреА
рдкреНрд░рд╕реНрддреБрддрд┐ )
"рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЖрдк рдкрд╛рдпрдерди рдореЗрдВ рдХреБрд╢рд▓ рдмрд╣реБ-рдереНрд░реЗрдбреЗрдб рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд╣реАрдВ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ?", рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВред рдирд╣реАрдВ, рдмреЗрд╢рдХ, рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХреБрдЫ рднреАред
рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди
рдПрдХ рдЕрд░реНрде рдореЗрдВ, рдкрд┐рдЫрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ
рд╕рдмрдкреНрд░реЛрд╕реЗрд╕ рдореЙрдбреНрдпреВрд▓ рд╣реИред рд╣рдо рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рд╣рдо рдПрдХ рд╕рдорд╛рдирд╛рдВрддрд░ рдзрд╛рдЧреЗ рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛)ред рдФрд░ рдЗрд╕реЗ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдПрдХ рдпрд╛ рдЕрдзрд┐рдХ рдереНрд░реЗрдбреНрд╕ рдореЗрдВ рдЪрд▓рд╛рдПрдВред рдЗрд╕ рддрд░рд╣ рдХреА рд╡рд┐рдзрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рдорд╛рд░реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдХрд╛рдо рдХреЛ рдЧрддрд┐ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдЬреАрдЖрдИрдПрд▓ рд▓реЙрдиреНрдЪ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдереНрд░реЗрдбреНрд╕ рдирд╣реАрдВ рдЙрдард╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЪрд▓рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдЗрд╕ рдкрджреНрдзрддрд┐ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рд╕рд╛рд░реА рд╕рдорд╕реНрдпрд╛рдПрдВ рд╣реИрдВред рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдореБрдЭреЗ рдХрд┐рд╕реА рддрд░рд╣ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдкреАрдЖрдИрдкреАрдИ рдпрд╛ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрдЪрд╛рд░ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣ рд╕рдм рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдУрд╡рд░рд╣реЗрдб рд▓рд╛рдЧрдд рд╡рд╣рди рдХрд░рддрд╛ рд╣реИ рдФрд░ рдХреЛрдб рдХреЛ рд╕рдордЭрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣рд╛рдВ рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣рдорд╛рд░реА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдкрд╛рдпрдерди рдореЗрдВ
рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдореЗрдВ, рдпрд╣ рдореЙрдбреНрдпреВрд▓
рдереНрд░реЗрдбрд┐рдВрдЧ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╛рдорд╛рдиреНрдп рдХрд╛рд░реНрдпреЛрдВ рд╕реЗ рдЙрд╕реА рддрд░рд╣ рд╕реЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдмрдирд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВред рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдереНрд░реЗрдбрд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдзрд╛рдЧреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ рд╕рдорд╛рди рд╣реИрдВред рд▓реЗрдХрд┐рди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рдХрд░рдиреЗ рдФрд░ рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдиреНрдп рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдЧрдд рд╣реИред рдпреЗ рдХреНрдпреВ рдФрд░ рдкрд╛рдЗрдк рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рддрд╛рд▓реЗ, рдШрдЯрдирд╛рдУрдВ, рдФрд░ рд╕реЗрдорд╛рдлреЛрд░ рдХреЗ рдПрдирд╛рд▓реЙрдЧ рдЬреЛ рдереНрд░реЗрдбрд┐рдВрдЧ рдореЗрдВ рдереЗ, рд╡реЗ рднреА рдпрд╣рд╛рдВ рд╣реИрдВред
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕рд╛рдЭрд╛ рдореЗрдореЛрд░реА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрдВрддреНрд░ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЪрд░ (рдорд╛рди) рдФрд░ рд╕рд░рдгреА (рд╕рд░рдгреА) рдХреА рдХрдХреНрд╖рд╛рдПрдВ рд╣реИрдВ, рдЬреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ "рд╕рд╛рдорд╛рдиреНрдпреАрдХреГрдд" (рд╕рд╛рдЭрд╛) рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рд╕рд╛рдЭрд╛ рдЪрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП, рдЖрдк рдкреНрд░рдмрдВрдзрдХ рд╡рд░реНрдЧреЛрдВ (рдкреНрд░рдмрдВрдзрдХ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡реЗ рдЕрдзрд┐рдХ рд▓рдЪреАрд▓реЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдореЗрдВ рдЖрд╕рд╛рди рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдзреАрдореЗ рд╣реЛрддреЗ рд╣реИрдВред рдХреЛрдИ рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ.рд╢реЗрдбрд┐рдВрдЧрдкрд╛рдЗрдкреНрд╕ рдореЙрдбреНрдпреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ ctypes рдореЙрдбреНрдпреВрд▓ рд╕реЗ рдкреНрд░рдХрд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рд╕реБрдЦрдж рдЕрд╡рд╕рд░ рдХреЛ рдиреЛрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ред
рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреВрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рднреА рд╣реИред рдпрд╣ рддрдВрддреНрд░ рдорд╛рд╕реНрдЯрд░-рд╡рд░реНрдХрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рд╕рдорд╛рдирд╛рдВрддрд░ рдорд╛рдирдЪрд┐рддреНрд░ (рдЬреЛ рдорд╛рд╕реНрдЯрд░-рд╡рд░реНрдХрд░ рдХрд╛ рдПрдХ рд╡рд┐рд╢реЗрд╖ рдорд╛рдорд▓рд╛ рд╣реИ) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред
рдорд▓реНрдЯреАрдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдореБрдЦреНрдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдореЗрдВ рд╕реЗ, рдЗрд╕ рдореЙрдбреНрдпреВрд▓ рдХреА рд╕рд╛рдкреЗрдХреНрд╖ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдирд┐рд░реНрднрд░рддрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИред рдЪреВрдВрдХрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдЕрд▓рдЧ-рдЕрд▓рдЧ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдпреЛрдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХреЛрдб рдкрд░ рдХреБрдЫ рдкреНрд░рддрд┐рдмрдВрдз рд▓рдЧрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡рд┐рдВрдбреЛрдЬ рдореЗрдВ рдХреЛрдИ рдХрд╛рдВрдЯрд╛ рддрдВрддреНрд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдкреГрдердХреНрдХрд░рдг рдмрд┐рдВрджреБ рдХреЛ рд▓рдкреЗрдЯрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
if __name__ =='__main__':
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдбрд┐рдЬрд╛рдЗрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдЪреНрдЫреЗ рдлреЙрд░реНрдо рдореЗрдВ рд╣реИред
рдФрд░ рдХреНрдпрд╛ ...
рдкрд╛рдпрдерди рдореЗрдВ рд╕рдорд╛рдирд╛рдВрддрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдкрд╛рдпрдерди (pyMPI, mpi4py) рдореЗрдВ Hadoop + рдкрд╛рдпрдерди рдпрд╛ рд╡рд┐рднрд┐рдиреНрди MPI рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреБрдо рднреА рдореМрдЬреВрджрд╛ C ++ рдпрд╛ рдлреЛрд░рдЯреНрд░рд╛рди рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд░реИрдкрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣рд╛рдВ рдЖрдк рдкрд╛рдпрд░реЛ, рдЯреНрд╡рд┐рд╕реНрдЯреЗрдб, рдЯреЙрд░реНрдиреЗрдбреЛ рдФрд░ рдХрдИ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдРрд╕реА рд░реВрдкрд░реЗрдЦрд╛ / рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд▓реЗрдЦ рдХреЗ рджрд╛рдпрд░реЗ рд╕реЗ рдкрд░реЗ рд╣реИред
рдпрджрд┐ рдЖрдкрдХреЛ рдореЗрд░реА рд╢реИрд▓реА рдкрд╕рдВрдж рдЖрдИ, рддреЛ рдЕрдЧрд▓реЗ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдпрд╣ рдмрддрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ рдХрд┐
PLY рдореЗрдВ рд╕рд░рд▓ рд╡реНрдпрд╛рдЦреНрдпрд╛рдХрд╛рд░реЛрдВ рдХреЛ рдХреИрд╕реЗ рд▓рд┐рдЦрдирд╛ рд╣реИ рдФрд░ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред