рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдЕрдХреНрдХрд╛ (рднрд╛рдЧ 1)

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

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

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

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

рддреЛ рдЪрд▓рд┐рдП рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдХреНрдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдХреБрдЫ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ akka.io/downloads рдбрд┐рд╕реНрдЯреНрд░реАрдмреНрдпреВрд╢рди рдХрд┐рдЯ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреА рд╣реЛрдЧреА рдпрд╛ рдирд┐рдореНрди рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпреЛрдВ рдХреЛ рдорд╛рд╡реЗрди рд╕реЗ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ред

< repository > <br> < id > akka.repository </ id > <br> < name > Akka Maven Repository </ name > <br> < url > akka.io/repository </ url > <br> </ repository > <br><br> < dependency > <br> < groupId > se.scalablesolutions.akka </ groupId > <br> < artifactId > akka-actor </ artifactId > <br> < version > 1.1.3 </ version > <br> </ dependency > <br><br> < dependency > <br> < groupId > se.scalablesolutions.akka </ groupId > <br> < artifactId > akka-typed-actor </ artifactId > <br> < version > 1.1.3 </ version > <br> </ dependency > <br><br> * This source code was highlighted with Source Code Highlighter .


рдЕрдХреНрдХрд╛ рджреЛ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЕрднрд┐рдиреЗрддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ - рдЕрдирдЯрд╛рдЗрдкрдбреИрдХреНрдЯрд░ рдФрд░ рдЯрд╛рдЗрдкреЗрдбреИрдХреНрдЯрд░ред UntypedActor onReceive рд╡рд┐рдзрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ

import akka.actor.UntypedActor;

public class TestUntypedActor extends UntypedActor {

public void onReceive(Object message) throws Exception {
if (message instanceof MySuperMessage) {
System. out .println( "We've got super message - " + message);
} else if (message instance of String) {
System. out .println( "Process string - " + message);
}
}


* This source code was highlighted with Source Code Highlighter .


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

interface RegistrationService {
void register(User user, Credentials cred);
User getUserFor(String username);
}

import akka.actor.TypedActor;

public class RegistrationServiceImpl extends TypedActor implements RegistrationService {
public void register(User user, Credentials cred) {
... //
}

public User getUserFor(String username) {
... //
return user;
}
}


* This source code was highlighted with Source Code Highlighter .


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

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

ActorRef testActor = Actors.actorOf(TestUntypedActor. class );

* This source code was highlighted with Source Code Highlighter .


рдирд┐рд░реНрдорд╛рдг рдХреЗ рдмрд╛рдж, рдХрд╛рд░рдЦрд╛рдирд╛ рдЕрднрд┐рдиреЗрддрд╛ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ (ActorRef) рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрджрд╛рд╣рд░рдг (рджреВрд░рд╕реНрде рдЕрднрд┐рдиреЗрддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ) рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░рдордмрджреНрдз рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рдорд╢реАрди рдкрд░ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

TypedActor рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрди рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

// - , -
UserService service =
(UserService) TypedActor.newInstance(UserService. class , UserServiceImpl. class );

// TypedActor

UserService service = TypedActor.newInstance(UserService. class , new TypedActorFactory() {
public TypedActor create() {
return new UserServiceImpl( "default user storage" ));
});


* This source code was highlighted with Source Code Highlighter .


рдЬреЛ рдЕрднрд┐рдиреЗрддрд╛ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рд▓рд┐рдВрдХ рджреЗрддрд╛ рд╣реИред

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

рдЕрдирдЯрд╛рдЗрдкрдбрдРрдХреНрдЯрд░ рдХреЗ рд▓рд┐рдП, рд╕рднреА рддреАрди рд╡рд┐рдзрд┐рдпрд╛рдВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИрдВ

actorRef.sendOneWay( "Hello" ); //

actorRef.sendOneWay( new MySuperObject(), ontext()); // . context actor' ( ), context().reply()

Object result = actorRef.sendRequestReply( "get result" ); // . context() ( ActorTimeoutException)

Future<MyResult> future = actorRef.sendRequestReplyFuture( "Hello" ); // . context() . Future await ( ), result ( ), exception ( )

* This source code was highlighted with Source Code Highlighter .


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

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

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


All Articles