рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдж рд░реБрдмреА рдкреБрд╕реНрддрдХ - рд╡рд┐рддрд░рд┐рдд рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрдВрдкреНрдпреВрдЯрд┐рдВрдЧ рд░реВрдмреА рдХреЗ рд╕рд╛рде (рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦрд┐рдд рдПрдХ рдЬрд╛рдкрд╛рдиреА рдкреБрд╕реНрддрдХ рдХрд╛ рдЕрдиреБрд╡рд╛рдж) рдЬрд╛рд░реА рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ DRb рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреБрд╕реНрддрдХ рдХреЗ рдЕрдзреНрдпрд╛рдпреЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реВрдВрдЧрд╛ред рдпрджрд┐ рдЖрдк рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рд╖рдп рдХреЗ рд╕рд╛рде рдЦреБрдж рдХреЛ рдкрд░рд┐рдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкреБрд╕реНрддрдХ
рдЦрд░реАрдж рдпрд╛
рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рддреБрд░рдВрдд рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдореИрдВ рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдереНрд░реЗрдб рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдмреЛрд▓реВрдВрдЧрд╛, рди рд╣реА рд░рд┐рдВрдбрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред
рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдк рдПрдХ рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рд▓рд┐рдЦ рд░рд╣реЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдЪрд▓рд╛рддрд╛ рд╣реИред рдпрд╛ рдЖрдкрдХреЛ рдмрд╕ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реЗ рджреВрд╕рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХреЗ рд╣рд╕реНрддрд╛рдВрддрд░рдг рдХреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╕рдордиреНрд╡рдпрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдРрд╕реА рд╕реНрдерд┐рддрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ DRB рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд░реВрдмреА рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рддреБрд░рдВрдд рдХрд╛рдо рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╕
require 'drb'
рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛
рдбреАрдЖрд░рдмреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рддрд╛рдХрдд рдореЛрдЯреЗ рддреМрд░ рдкрд░ рд░реВрдмреА рднрд╛рд╖рд╛ рдХреА рдЧрддрд┐рд╢реАрд▓рддрд╛ рд╕реЗ рдЖрддреА рд╣реИред
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЬрдм рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдореЗрдВ рдиреНрдпреВрдирддрдо рдкреНрд░рдпрд╛рд╕ рдЦрд░реНрдЪ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╣рд┐рдЪрдХрд┐рдЪрд╛рд╣рдЯ рдХреЗ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╡реЗ рд╕реНрдерд┐рдд рд╣реИрдВ: рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдпрд╛ рджреВрд╕рд░реЗ рдореЗрдВред рдкреБрд╕реНрддрдХрд╛рд▓рдп рдЖрдкрд╕реЗ рд╕рднреА рддрдХрдиреАрдХреА рд╡рд┐рд╡рд░рдгреЛрдВ рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд▓рдЧ рдХрд░ рджреЗрддрд╛ рд╣реИред
рджреВрд╕рд░реЗ, рдЖрдкрдХреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд╣рд╛рд░реНрдб-рдХреЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдХреЛрдИ рднреА рд░реВрдмреА рд╡рд╕реНрддреБ рдЗрд╕рдХреЗ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдмрд╛рд╣рд░ рддрдХ рд▓реЗ рдЬрд╛ рд╕рдХрддреА рд╣реИ - рдЗрд╕ рддрд░рд╣ рдЖрдк рджреЛрдиреЛрдВ рдПрдХ рдорд╛рдирдХ рдХрдХреНрд╖рд╛рдУрдВ рдЬреИрд╕реЗ
Hash
рдпрд╛
Queue
рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╛ рдЖрдк рдХрд┐рд╕реА рднреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдЕрдкрдиреА рдХрдХреНрд╖рд╛ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рднреА рдЖрдкрдХреЛ рд╕реАрдзреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдмрджрд▓рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдХрд┐рд╕реА рднреА рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП
method_missing
рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╣рд╛рдВ, рд╕рд░реНрд╡рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдкреНрд░рднрд╛рд╡рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдЙрди рддрд░реАрдХреЛрдВ рдХреЛ рдирд╣реАрдВ рдХрд╣рддрд╛ рд╣реИ рдЬреЛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдмрджрд▓ рдЪреБрдХреЗ рд╣реИрдВред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдпрдерд╛рд╕рдВрднрд╡ рд╕реНрд╡рддрдВрддреНрд░ рд╣реИрдВред
рдФрд░ рдЕрдВрдд рдореЗрдВ, рдХреНрд▓рд╛рдЗрдВрдЯ рд╡рд╕реНрддреБрдУрдВ рдХреА рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдмрд╛рдзреНрдп рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдЙрд╕рдХреЗ рдкрд╛рд╕ рд▓реМрдЯ рдЖрдП, рд╡рд╣ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рд░реНрд╡рд░ рдЬрд┐рддрдирд╛ рдЪрд╛рд╣реЗ рдЙрддрдирд╛ рд╡рд┐рд╡рд░рдг рдЫрд┐рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рд╣реИред
рд▓реЗрдХрд┐рди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдиреБрдХрд╕рд╛рди рд╣реИрдВ, рдФрд░ рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, dRuby рд╕рдордЭрдиреЗ рдореЗрдВ рд╕рд░рд▓ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреА рд╕рдВрд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдиреЗ рд╕реЗ рдЖрдк рдЬреНрдпрд╛рджрд╛рддрд░ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд░реЛрдХ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди, рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдХрдИ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд▓реЗрдЦ рд╢реБрд░реБрдЖрддреА рдФрд░ рдЙрди рд▓реЛрдЧреЛрдВ рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рдЪреБрдХреЗ рд╣реИрдВред
рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рджреЛ irb рдЯрд░реНрдорд┐рдирд▓ рдЦреЛрд▓реЗрдВред рдореИрдВ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реВрдВ рдХрд┐ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рд░реВрдмреА 1.8 рдореЗрдВ рдХрд┐рддрдиреЗ рдмрдбрд╝реЗ рдЕрдВрддрд░ рд╣реИрдВ, рддреЛ рдЪрд▓рд┐рдП рд╕рд╣рдордд рд╣реИрдВ рдХрд┐ рд╣рдо рд╕рдВрд╕реНрдХрд░рдг 1.9 рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВ (рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ 1.8 рдХреЗ рдмрд╛рдж рд╕реЗ - рдЬрд▓реНрдж рд╣реА рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдВрдж рд╣реЛ рдЬрд╛рдПрдЧрд╛, рд╣реБрд░реНрд░реЗ!)
рд╕рд╢рд░реНрдд рд░реВрдк рд╕реЗ, рдпреЗ рджреЛ рдЯрд░реНрдорд┐рдирд▓ рдПрдХ рд╕рд░реНрд╡рд░ рдФрд░ рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИрдВред рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рдлреНрд░рдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдЧрд╛ред рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛрдИ рднреА рд╡рд╕реНрддреБ рд╣реЛ рд╕рдХрддреА рд╣реИ: рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рдирд┐рд░реНрдорд┐рдд рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╡рд╕реНрддреБ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдХ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдмрдирд╛рдП рдЧрдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рдореЙрдбреНрдпреВрд▓ рднреАред рдмрджрд▓реЗ рдореЗрдВ, рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд░реНрд╡рд░ рд╕реЗ рдЬреБрдбрд╝рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд▓рд┐рдП рдкрд╣рд▓реЗ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдПрд░реЗ рдбрд╛рд▓рддреЗ рд╣реИрдВред
require 'drb' front = [] DRb.start_service('druby://localhost:1234', front) front << 'first'
рдЕрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВред рд╣рдо рдПрд░реЗ рдХреЗ рдкрд╣рд▓реЗ рдПрд▓реАрдореЗрдВрдЯ рдХреЛ рдкрд╣рдЪрд╛рдирддреЗ рд╣реИрдВ рдФрд░ рдПрд░реЗ рдХреЛ рджреВрд╕рд░реЗ рдПрд▓реАрдореЗрдВрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ
require 'drb' DRb.start_service remote_obj = DRbObject.new_with_uri('druby://localhost:1234') p remote_obj p remote_obj[0] remote_obj << 'second'
рдЕрдм рдЖрдк рдкрд╣рд▓реЗ рдЯрд░реНрдорд┐рдирд▓ рд╕реЗ
front[1]
рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ
'second'
ред рдФрд░ рдЖрдк рдХрд┐рд╕реА рдЕрдиреНрдп рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЗрд╕рд╕реЗ рдЙрд╕реА рд▓рд▓рд╛рдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рд╣реИ, рд╕рд░реНрд╡рд░ рдХреА рд╢реБрд░реБрдЖрдд
DRb.start_service
рдХрдорд╛рдВрдб рджреНрд╡рд╛рд░рд╛ рдХреА
DRb.start_service
(рд░рдЬрд┐рд╕реНрдЯрд░ рдкрд░ рдирдЬрд░ рд░рдЦреЗрдВ)ред рд╡рд┐рдзрд┐ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ
'druby://hostname:port'
рдФрд░ рдлреНрд░рдВрдЯ-рдПрдВрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдкрддреЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реЛрддреА рд╣реИред рдПрдХ рдлреНрд░рдВрдЯ-рдПрдВрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗред
рдЬрдм рд╕рд░реНрд╡рд░ рдПрдХ рдЕрд▓рдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рдЕрдВрдд рдореЗрдВ
DRb.thread.join
рд▓рд┐рдЦреЗрдВред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ DRb рд╕рд░реНрд╡рд░ рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рд░реВрдмреА рдореБрдЦреНрдп рдзрд╛рдЧрд╛ рдкреВрд░рд╛ рд╣реЛрддреЗ рд╣реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдореБрдЦреНрдп рдереНрд░реЗрдб рдбреАрдЖрд░рдмреА рд╕рд░реНрд╡рд░ рд╕реНрдЯреНрд░реАрдо рдХреЗ рдмрдВрдж рд╣реЛрдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рджреЛрдиреЛрдВ рдзрд╛рд░рд╛рдПрдВ рдЕрдиреБрд╕реВрдЪреА рд╕реЗ рдкрд╣рд▓реЗ рдкреВрд░реА рд╣реЛ рдЬрд╛рдПрдВрдЧреА, рдФрд░ рд╕рд░реНрд╡рд░ рддреБрд░рдВрдд рдЕрдиреБрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдЗрд╕ рддрдереНрдп рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд░рд╣реЗрдВ рдХрд┐ рд╕рд░реНрд╡рд░ рдмрдВрдж рд╣реЛрдиреЗ рддрдХ
DRb.Thread.join
рд╡рд┐рдзрд┐ рдХрд╛ рдирд┐рд╖реНрдкрд╛рджрди рд╡рд░реНрддрдорд╛рди рдереНрд░реЗрдб рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИред
рд╕рд░реНрд╡рд░ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ
DRbObject.new_with_uri
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛
DRbObject.new_with_uri
рдФрд░ рдЙрд╕ рдкрддреЗ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрд╣рд╛рдВ рд╕рд░реНрд╡рд░ рдПрдХ рддрд░реНрдХ рдХреЗ рд░реВрдк рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдпрд╣ рд╡рд┐рдзрд┐
remote_obj
рдкреНрд░реЙрдХреНрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рд▓реМрдЯрд╛рдПрдЧрд╛ред рдкреНрд░реЙрдХреНрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд░реЛрдз (рд╡рд┐рдзрд┐ рдХреЙрд▓) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рджреВрд░рд╕реНрде рд╕рд░реНрд╡рд░ рдкрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдзрд┐ рд╡рд╣рд╛рдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддреА рд╣реИ, рдФрд░ рдлрд┐рд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред (рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ рд╕рд░реНрд╡рд░ рдкрд░ рдирд╣реАрдВ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рджреЗрдЦрддреЗ рд╣реБрдП,
#class
рд╡рд┐рдзрд┐
#class
рд╕реНрдерд╛рдиреАрдп рд░реВрдк
#class
рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)
рдХреНрд▓рд╛рдЗрдВрдЯ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж
DRb.start_service
рдХрдорд╛рдВрдб
DRb.start_service
рдЕрд░реНрде
DRb.start_service
рдХрд░реЗрдЧрд╛ред
рдЖрдЗрдП рдЕрдВрдд рдореЗрдВ рдкрддрд╛ рд▓рдЧрд╛рдПрдВ рдХрд┐ рджреВрд░рд╕реНрде рд╡рд╕реНрддреБ рдХреА рд╡рд┐рдзрд┐ рдХреИрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХреА рдЬрд╛рддреА рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░реЙрдХреНрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ (рдорд╛рд░реНрд╢рд▓реНрд╕) рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдо рдФрд░ рддрд░реНрдХреЛрдВ рдХреА рд╕реВрдЪреА, рдЯреАрд╕реАрдкреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдкрд░рд┐рдгрд╛рдореА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рд░реНрд╡рд░ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдХреЙрд▓ рддрд░реНрдХреЛрдВ рдХреЛ рдбрд┐рд╕реЗрд░рд▓рд╛рдЗрдЬрд╝ рдХрд░рддрд╛ рд╣реИ, рдлреНрд░рдВрдЯ-рдПрдВрдб рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд░ рд╡рд┐рдзрд┐ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ, рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕реАрд░рд┐рдпрд▓ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╡рд╛рдкрд╕ рднреЗрдЬрддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рджрд┐рдЦрддрд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЖрдк рдПрдХ рджреВрд░рд╕реНрде рд╡рд╕реНрддреБ рдХреЗ рд╕рд╛рде рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдПрдХ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ, рдФрд░ рд╡рд┐рдзрд┐ рдХреЗ рджреВрд░рд╕реНрде рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд░реА рдХреНрд░рд┐рдпрд╛рдПрдВ, рдкреНрд░реЙрдХреНрд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдЖрдкрд╕реЗ рдЫрд┐рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
рд▓реЗрдХрд┐рди рдЗрддрдирд╛ рд╕рд░рд▓ рдирд╣реАрдВ рд╣реИред рд░рд┐рдореЛрдЯ рд╡рд┐рдзрд┐ рдордВрдЧрд▓рд╛рдЪрд░рдг рдорд╣рдВрдЧрд╛ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдПрдХ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рд╡рд┐рдзрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рддрд░реНрдХ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ "рдЦреАрдВрдЪрддреА рд╣реИ"ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рд░реНрд╡рд░ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ, рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рд╕рдордп рдХреЗ рд╢реЗрд░ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдзреАрдореА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ-рджреВрд╕рд░реЗ рддрдХ рдкрд╣реБрдВрдЪреЗрдВрдЧреЗ (рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ рдЕрдЧрд░ рджреЛрдиреЛрдВ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдПрдХ рд╣реА рдорд╢реАрди рдкрд░ рд╕реНрдерд┐рдд рд╣реИрдВ)ред рдЗрд╕реЗ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рддрд░реНрдХ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдорд╛рди рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╕рдВрджрд░реНрдн рд╕реЗ рдирд╣реАрдВ (рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдорд╛рд░реНрд╢рд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗрд╡рд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЖрдВрддрд░рд┐рдХ рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрддрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ_рдб рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ - рдЗрд╕рд▓рд┐рдП рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд╣рд▓реЗ рдЕрдиреБрдХреНрд░рдорд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж deserialized рдХреЗрд╡рд▓ рдореВрд▓ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╣реЛрдЧреАред рд▓реЗрдХрд┐рди рдПрдХ рд╣реА рд╡рд╕реНрддреБ рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ, рдЗрд╕рд▓рд┐рдП рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ)ред рд░реВрдмреА рдореЗрдВ, рдЖрдорддреМрд░ рдкрд░ рд╕рдм рдХреБрдЫ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ dRuby рдореЗрдВ, рдЖрдорддреМрд░ рдкрд░ рдореВрд▓реНрдп рджреНрд╡рд╛рд░рд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдпрджрд┐ рдЖрдк
front[0].upcase!
рд╕рд░реНрд╡рд░ рдкрд░, рддреЛ
front[0]
рдХрд╛ рдорд╛рди
front[0]
рдмрджрд▓ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдпрджрд┐ рдЖрдк
remote_obj[0].upcase!
рдирд┐рд╖реНрдкрд╛рджрд┐рдд
remote_obj[0].upcase!
, рддрдм рдЖрдкрдХреЛ рдКрдкрд░реА рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд╣рд▓рд╛ рддрддреНрд╡ рдорд┐рд▓реЗрдЧрд╛, рд▓реЗрдХрд┐рди
remote_obj.[](0)
рдмрд╛рдж рд╕реЗ рд╕рд░реНрд╡рд░ рдкрд░ рдореВрд▓реНрдп рдирд╣реАрдВ рдмрджрд▓реЗрдЧрд╛
remote_obj.[](0)
рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреА рдПрдХ рдкреНрд░рддрд┐ рд╣реИред рдЗрд╕ рдХреЙрд▓ рдХреЛ
front[0].dup.upcase!
рд╕рдорд╛рди рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
front[0].dup.upcase!
рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рд╣рдореЗрд╢рд╛ dRuby рдХреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХрд┐ рддрд░реНрдХ рдФрд░ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рдгрд╛рдо, рд▓реЗрдХрд┐рди рдмрд╛рдж рдореЗрдВ рдФрд░ рдЕрдзрд┐рдХред
рдЕрдм рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдорд╛рд░реНрд╢рд▓рд╛рдЗрдЬрд╝ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░реЛрдХ рдФрд░ рдЖрдИрдУ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕, рд╕рд╛рде рд╣реА рдереНрд░реЗрдбреНрд╕ (рдереНрд░реЗрдб рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕) рдХреЛ рдХреЙрдкреА рдкрд░ рдорд╛рд░реНрд╢ рдХрд┐рдпрд╛ рдФрд░ рдкреНрд░рд╕рд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред dRuby рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдЧреЗ рдмрдврд╝рддрд╛ рд╣реИ: рдпрджрд┐ рдорд╛рд░реНрд╢рд▓рд╛рдЗрдЬреЗрд╢рди рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрджрд░реНрдн рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рддреЛ, рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рд╡рд╕реНрддреБ рдХреЛ рдХреИрд╕реЗ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ? рд╕реА рдпрд╛рдж рдХрд░реЛред рд╡рд╣рд╛рдВ, рдЗрд╕ рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдкреЙрдЗрдВрдЯрд░реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд░реВрдмреА рдореЗрдВ, рд╕реВрдЪрдХ рдХреА рднреВрдорд┐рдХрд╛
object_id
рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИред рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
DRbObject
рдХреНрд▓рд╛рд╕ рдХреА рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛
DRbObject
ред
DRbObject
, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рд╡рд╕реНрддреБ рд╣реИред рдЗрд╕ рд╢реНрд░реЗрдгреА рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг
DRbObject.new(my_obj)
рдореЗрдВ рдСрдмреНрдЬреЗрдХреНрдЯ
my_obj
object_id
рдСрдмреНрдЬреЗрдХреНрдЯ_
my_obj
рдФрд░ рд╕рд░реНрд╡рд░ рдХрд╛ URI рд╣реЛрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдСрдмреНрдЬреЗрдХреНрдЯ рдЖрдпрд╛ рдерд╛ред рдпрд╣ рдЖрдкрдХреЛ рд╡рд┐рдзрд┐ рдХреЙрд▓ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдФрд░ рд░рд┐рдореЛрдЯ рдорд╢реАрди (рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдЯрд░реНрдорд┐рдирд▓) рдкрд░ рдмрд╣реБрдд рд╣реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рдзрд┐ рдХрд╛ рдЗрд░рд╛рджрд╛ рдерд╛ред
рдЪрд▓реЛ рд╣рдорд╛рд░реЗ рд╕рд░реНрд╡рд░ рдХреЛ рдПрдХ рд╡рд┐рдзрд┐ рдмрдирд╛рддреЗ рд╣реИрдВ
def front.[](ind) DRbObject.new(super) end
рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕реЗ рдХреЛрдб рдЪрд▓рд╛рдПрдВред
remote_obj.[0].upcase!
рдирдИ рд╡рд┐рдзрд┐
#[]
рдкрд╣рд▓реЗ рддрддреНрд╡ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдирд╣реАрдВ
upcase!
, рд▓реЗрдХрд┐рди рдПрдХ рд▓рд┐рдВрдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП
upcase!
рд╡рд┐рдзрд┐ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж
upcase!
рд╕рд╛рдордиреЗ рдХреА рд╡рд╕реНрддреБ рдмрджрд▓ рдЧрдИ рд╣реИ, рдЗрд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдХреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХреНрд░рдорд╢рдГ рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рд╕реЗ,
puts remote_obj
puts front
рдпрд╛
puts front
рдХрдорд╛рдВрдб
puts front
рд╣реИред
рд▓реЗрдХрд┐рди рд╣рд░ рдмрд╛рд░ рдореИрдВ
DRbObject.new
- рдЖрд▓рд╕реНрдп рд▓рд┐рдЦрддрд╛
DRbObject.new
ред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рдореВрд▓реНрдп рдХреЗ рдмрдЬрд╛рдп рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдХрд┐рд╕реА рд╡рд╕реНрддреБ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЧреИрд░-рдорд╛рд░реНрд╢рд▓ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рдпрд╣ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рдмрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдореЗрдВ
DRbUndumped
рдореЙрдбреНрдпреВрд▓ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред
my_obj.extend DRbUndumped class Foo; include DRbUndumped; end
рдЕрдм рдСрдмреНрдЬреЗрдХреНрдЯ
my_obj
рдФрд░
Foo
рд╡рд░реНрдЧ рдХреА рд╕рднреА рд╡рд╕реНрддреБрдПрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрджрд░реНрдн (рдФрд░
Marshal.dump(my_obj)
TypeError 'can\'t dump'
) рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рдПрдВрдЧреАред
рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрддрд╛ рд╣реВрдВ рдЬреЛ рдореБрдЭреЗ рдЕрднреНрдпрд╛рд╕ рдореЗрдВ рдорд┐рд▓рд╛ рдерд╛ред рд╕рд░реНрд╡рд░ рд╣реИрд╢ рдХреЛ рд╕рд╛рдордиреЗ рдХреА рд╡рд╕реНрддреБ рдХреЗ рд░реВрдк рдореЗрдВ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдорд╛рди рдЯрд┐рдХрдЯ рд╣реЛрддреЗ рд╣реИрдВ (рдЯрд┐рдХрдЯ рдХреЗ рдЕрдВрджрд░ рд╕реЗ рдПрдХ рд░рд╛рдЬреНрдп рдорд╢реАрди рд╣реИ)ред рддрдм
remote_obj[ticket_id]
рдЯрд┐рдХрдЯ рдХреА рдПрдХ рдкреНрд░рддрд┐ рджреЗрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рд╕рд░реНрд╡рд░ рдкрд░ рдЯрд┐рдХрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдЖрдЗрдП,
DRbUndumped
рдХреЛ
Ticket
рдХреНрд▓рд╛рд╕ рдореЗрдВ
DRbUndumped
ред рдЕрдм рд╣рдо рдЯрд┐рдХрдЯ рдХреА рдПрдХ рдкреНрд░рддрд┐ рдирд╣реАрдВ рд╣реИрд╢ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ - рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреЛрдИ рднреА рдХреНрд░рд┐рдпрд╛ рдЕрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рд╕рд░реНрд╡рд░ рдкрд░ рд╣реЛрддреА рд╣реИред
рдФрд░ рдЕрдм рдпрд╣ рд╡рд╛рджрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рд░рдЦрдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рдФрд░ рд╣рдореЗрдВ рдмрддрд╛рдПрдВ рдХрд┐ рдЖрдкрдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░
DRb.start_service
рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИред рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдПрдХ рд╕рд░рдгреА рдЖрдкрдХреЗ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рд╛рдордиреЗ рдХреА рд╡рд╕реНрддреБ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реИред
рдЕрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ
remote_obj.map{|x| x.upcase}
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рджреЗрдВ
remote_obj.map{|x| x.upcase}
remote_obj.map{|x| x.upcase}
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдмреНрд▓реЙрдХ рддрд░реНрдХ рдХреЗ рд╕рд╛рде рдирдХреНрд╢рд╛ рд╡рд┐рдзрд┐ рдХреЛ рд╕рд╛рдордиреЗ рдХреА рд╡рд╕реНрддреБ рдкрд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдФрд░ рд╣рдо, рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ, рдорд╛рд░реНрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддреЛ рдпрд╣ рдмреНрд▓реЙрдХ рддрд░реНрдХ рд╕рдВрджрд░реНрдн рджреНрд╡рд╛рд░рд╛ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд░реНрд╡рд░ рдкрд░
map
рд╡рд┐рдзрд┐ рдЗрд╕реЗ
yield
рд╕рд╛рде рдПрдХреНрд╕реЗрд╕ рдХрд░реЗрдЧреА, рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рд╕рд░реНрд╡рд░ рд╣реИ! рд▓реЗрдХрд┐рди рдЪреВрдБрдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕рдордп-рд╕рдордп рдкрд░ рд╕рд░реНрд╡рд░ рдмрдирдирд╛ рд╣реЛрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЙрд╕реЗ DR_ рд╕рд░реНрд╡рд░ рдХреЛ рднреА
start_service
рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реИред рдЗрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рдпреВрдЖрд░рдЖрдИ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЕрдВрджрд░ рд╕реЗ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдкрдиреЗ рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦрд╛ рд╣реИ, рдХреНрд▓рд╛рдЗрдВрдЯ рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрдо рд╕реЗ рдХрдо рдпрд╣ рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред
рдПрдХ рдирдП рдЙрдкрджреНрд░рд╡ рдореЗрдВ рдареЛрдХрд░ рдХрд╛ рдЦрддрд░рд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╡рд┐рдзрд┐ рдиреЗ рдХрд┐рд╕реА рд▓рд┐рдВрдХ рдХреЛ рдПрдХ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ (рдкреНрд░рддрд┐ рдирд╣реАрдВ) рд▓реМрдЯрд╛рдпрд╛ рд╣реИ рдЬреЛ рд╕реАрдзреЗ рд╡рд┐рдзрд┐ рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реБрдИ рд╡рд╕реНрддреБ рдХреЗ рд▓рд┐рдП рд╣реИред рдпрджрд┐ рд╕рд░реНрд╡рд░ рдиреЗ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рд╕рд╣реЗрдЬрд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ рдХрд┐рд╕реА рд╡рд┐рд╢реЗрд╖ рд╣реИрд╢ рдореЗрдВ рдирд╣реАрдВ рд░рдЦрд╛ рд╣реИ), рддреЛ рд╕рд░реНрд╡рд░ рдХреЗ рдкрд╛рд╕ рдЗрд╕рдХрд╛ рд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реИред рджреВрд░рд╕реНрде рдорд╢реАрди рдкрд░ рдЧреНрд░рд╛рд╣рдХ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рд╣реИ! рдЗрд╕рд▓рд┐рдП, рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ,
рдЯреНрд░реЛрд▓ рдЖрдкрдХреЗ рд▓рд┐рдП рдореЗрд▓ рдХреЗ рд▓рд┐рдП рдЖрдПрдЧрд╛ рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЬреАрд╕реА рдЖрдПрдЧрд╛ - рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рдмрд╛рдж рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░
DRbObject
рдЬреИрд╕рд╛ рд▓рд┐рдВрдХ "рдЦрд░рд╛рдм рд╣реЛ рдЬрд╛рдПрдЧрд╛" рдФрд░ рдХрд╣реАрдВ рдирд╣реАрдВ рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ред рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рддреНрд░реБрдЯрд┐ рд╣реЛрдЧреАред
рдЗрд╕рд▓рд┐рдП, рдЗрд╕ рдмрд╛рдд рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╕рд░реНрд╡рд░ рд▓реМрдЯреЗ рд╣реБрдП рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░рддрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдЬрдм рддрдХ рд╡реЗ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рдорд╛рдзрд╛рди рд╣реИрдВ:
1) рдПрдХ рд╕рд░рдгреА рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдкрд╛рд░рд┐рдд рд╕рднреА рд▓реМрдЯреЗ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдмрдЪрд╛рдПрдВ - рдлрд┐рд░ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рдЙрдиреНрд╣реЗрдВ рдЗрдХрдЯреНрдард╛ рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ;
2) рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдмреНрд▓реЙрдХ рдХрд╛ рд▓рд┐рдВрдХ рднреЗрдЬреЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
рдЗрд╕ рдХреЛрдб рдХреЗ рдмрдЬрд╛рдп:
Ticket.send :include, DRbUndumped def front.get_ticket Ticket.new end foo = remote_obj.get_ticket foo.start foo.closed?
рдЗрд╕реЗ рдЗрд╕ рддрд░рд╣ рд▓рд┐рдЦрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
Ticket.send :include, DRbUndumped def front.get_ticket object_to_reference = Ticket.new yield object_to_reference end remote_obj.get_ticket do |foo| foo.start foo.closed? end
рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХ рдорд╛рдиреНрдп рд╕реНрдерд╛рдиреАрдп рдЪрд░ рдХреЛ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдПрдХрддреНрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рддреЛ, рдмреНрд▓реЙрдХ рдХреЗ рдЕрдВрджрд░, рд▓рд┐рдВрдХ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЧрд╛рд░рдВрдЯреА рд╣реИред
3) рдкреБрд╕реНрддрдХ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рдмрддрд╛рддреА рд╣реИ - рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ
object_id
рдСрдмреНрдЬреЗрдХреНрдЯ_рдЖрдИрдбреА рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдЪрд░рдг рдореЗрдВ рдПрдХ рд▓рд┐рдВрдХ рдмрдирд╛рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ
object_id
рдФрд░ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рджреЗрд░реА рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рдЖрдк рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣реИрд╢ рдореЗрдВ рдПрдХ рддрддреНрд╡ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╣рдореЗрд╢рд╛ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдореЗрдореЛрд░реА рдЬрд┐рддрдиреА рдЬрд▓реНрджреА рдпрд╛ рдмрд╛рдж рдореЗрдВ рдЪрд▓реЗрдЧреА), рдЖрдк рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд╕рд╛рдлрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЖрдк рдЗрд╕ рд╣реИрд╢ рдХреЛ рд╣рд░ рдХреБрдЫ рдорд┐рдирдЯреЛрдВ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╕рд╛рдлрд╝ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдЕрдВрддрд┐рдо рд╡рд┐рдзрд┐ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ
require 'drb/timeridconv' DRb.install_id_conv(DRb::TimerIdConv.new)
рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдкреБрд╕реНрддрдХ рдХрд╛ рдЕрдзреНрдпрд╛рдп 11 рджреЗрдЦреЗрдВ - рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рд╕рдВрднрд╛рд▓рдирд╛ред рдпрд╣ рдореБрдЭреЗ рджрд┐рд▓рдЪрд╕реНрдк рд▓рдЧрддрд╛ рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдЗрд╕реЗ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж рдЖрдкрдХреЗ рдкрд╛рд╕ рдХрдЪрд░рд╛ рд╕рдВрдЧреНрд░рд╣рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╣реЗрд░рдлреЗрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдирдП рддрд░реАрдХреЗ рд╣реЛрдВрдЧреЗред рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рджреВрд╕рд░реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ - рдФрд░ рдмреНрд▓реЙрдХ рдХреЛ рд▓рд┐рдВрдХ рджреЗрдирд╛ред рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдФрд░ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИред
рдпрд╣ рдкреНрд░рдХрд╛рд╢рдорд╛рди рд░рд╣рддрд╛ рд╣реИ, рд╢рд╛рдпрдж, рдЖрдЦрд┐рд░реА рдХреНрд╖рдгред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдЖрдк рдПрдХ рд▓рд┐рдВрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ
Foo
рдСрдмреНрдЬреЗрдХреНрдЯ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред рдЧреНрд░рд╛рд╣рдХ рдХрд┐рд╕реА рднреА
Foo
рд╡рд░реНрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рднреА рдпрд╣ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╕реЗ рдирд╣реАрдВ рд░реЛрдХрддрд╛ рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдХреНрд▓рд╛рдЗрдВрдЯ
DRbObject
рдХреНрд▓рд╛рд╕ рдХреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред рд╕рдм рдХреБрдЫ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ рд╣реИред
рдЕрдм рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВ рдХрд┐ рдЖрдк рд▓рд┐рдВрдХ рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдкреНрд░рддрд┐ рдкреНрд░реЗрд╖рд┐рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рд░реНрд╡рд░ рдкрд░ рдХреНрд░рдорд╛рдВрдХрди рдиреЗ рд╡рд╕реНрддреБ рдХреА рд╕реНрдерд┐рддрд┐ рдФрд░ рдЙрд╕рдХреА рдХрдХреНрд╖рд╛ рдХреЗ рдирд╛рдо рдХреЛ рдмрдЪрд╛рдпрд╛ред рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рдФрд░ рд╡рд╣ рдЗрд╕реЗ рдбреАрд░рд┐рд╢рд┐рдпрд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рдмреЗрд╢рдХ, рдпрд╣ рдЙрд╕рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдИ рднреА рд╡рд░реНрдЧ
Foo
рдХреА рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╣реАрдВ рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИред рддрдм deserialization
DRb::DRbUnknown
рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╡рд╕реНрддреБ
DRb::DRbUnknown
, рдЬреЛ
DRb::DRbUnknown
рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рдмрдлрд░ рд╕реНрдЯреЛрд░ рдХрд░реЗрдЧрд╛ред рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдХрд╛рд░реНрдп рдХрддрд╛рд░ рдореЗрдВ) рдкрд╛рд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдХрдХреНрд╖рд╛ рдХреЗ рдирд╛рдо рдХрд╛ рднреА рдкрддрд╛ рд▓рдЧрд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдХрдХреНрд╖рд╛ рдХреЗ рд╕рд╛рде рдЙрдкрдпреБрдХреНрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░
reload
рд╕реЗ
reload
рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдлрд┐рд░ рдПрдХ рдФрд░ рдкреНрд░рдпрд╛рд╕ deserialize рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рд╣реИ
рдирд╣реАрдВ, рдЕрднреА рднреА рдпрд╣ рдЕрдВрддрд┐рдо рдХреНрд╖рдг рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд┐рдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдореИрдВ рдХреБрдЫ рд╢рдмреНрдж рдирд╣реАрдВ рдХрд╣реВрдВрдЧрд╛ред
рд╡рд┐рддрд░рд┐рдд рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХреЗ рд▓рд┐рдП, рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рд╕рдВрдЪрд╛рд▓рди рдХреА рдкрд░рдорд╛рдгреБрддрд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрд╡рдзрд╛рд░рдгрд╛рдПрдВ рд╣реИрдВред рд╕рд░реНрд╡рд░ рдПрдХ рдЕрд▓рдЧ рдереНрд░реЗрдб рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд▓рд┐рдП, рдПрдХ рдЕрд▓рдЧ рд╕реНрдЯреНрд░реАрдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдпрд╣ рдЕрдиреБрд░реЛрдз рд╕рдВрд╕рд╛рдзрд┐рдд рд╣реЛрддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рдПрдХ рд╣реА рд╕рдордп рдкрд░ рдПрдХ рд╣реА рд╕реВрдЪрдирд╛ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдереНрд░реЗрдбреНрд╕ рдХреЛ рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рдЗрд╕рд▓рд┐рдП рдЬрдм рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд╡рд┐рддрд░рд┐рдд рдФрд░ рд╕рдорд╛рдирд╛рдВрддрд░ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
1) рдирд┐рд░реНрдорд╛рдг
lock = Mutex.new; lock.synchronize{ do_smth }
lock = Mutex.new; lock.synchronize{ do_smth }
рдорд╛рдирдХ
MonitorMixin
рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ 2) рдореЙрдбреНрдпреВрд▓
3)
Queue
рдорд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрдХреНрд╖рд╛рдПрдВ,
SizedQueue
рдбреАрдЖрд░рдмреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╢реБрднрдХрд╛рдордирд╛рдПрдБ! рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдХрд┐рд╕реА рдХреЛ рдпрд╣ рд╕рдордЭрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдореЗрдВ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЦрд░реНрдЪ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХрд╛ рдХрд┐ рд╡рд╕реНрддреБ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдмрджрд▓рддреА рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЖрдк рд╡рд┐рдирд╛рд╢рдХрд╛рд░реА рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕ рддрд░реАрдХреЗ рдХреЛ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдмреНрд▓реЙрдХ рдХреЗ рдХрд╛рдо рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ рдХреНрдпреЛрдВ рдкреНрд░рд╛рдкреНрдд рд▓рд┐рдВрдХ рдиреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдФрд░ рдХрд╛рдо рдХрд┐рдпрд╛ - рдФрд░ рдЕрдЪрд╛рдирдХ рдмрдВрдж рд╣реЛ рдЧрдпрд╛ред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкреБрд╕реНрддрдХ рдореЗрдВ рдЖрдкрдХреЛ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд┐рд▓реЗрдЧрд╛, рдЦрд╛рд╕рдХрд░ рд░рд┐рдВрдбрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдЗрд╕рдХреЗ рд╕рдордХрдХреНрд╖реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред