public class DefaultActorManager extends Object implements ActorManager
| 限定符和类型 | 类和说明 |
|---|---|
class |
DefaultActorManager.ActorRunnable
public intended only for "friend" access.
|
| 限定符和类型 | 字段和说明 |
|---|---|
static String |
ACTOR_THREAD_COUNT
Configuration key for thread count.
|
protected Map<String,AbstractActor> |
actors |
static int |
DEFAULT_ACTOR_THREAD_COUNT |
protected int |
dispatchCount |
protected static int |
groupCount |
protected static DefaultActorManager |
instance |
protected int |
lastDispatchCount |
protected long |
lastDispatchTime |
protected int |
lastSendCount |
protected long |
lastSendTime |
protected int |
maxTrendValue |
protected Random |
rand |
protected boolean |
recordSentMessages |
protected Map<String,AbstractActor> |
runnables |
protected int |
sendCount |
protected Map<String,List<Message>> |
sentMessages |
protected ThreadGroup |
threadGroup |
protected List<Thread> |
threads |
protected int |
trendValue |
protected Map<String,DefaultActorManager.ActorRunnable> |
trunnables |
protected Map<String,AbstractActor> |
waiters |
| 构造器和说明 |
|---|
DefaultActorManager() |
| 限定符和类型 | 方法和说明 |
|---|---|
Thread |
addThread(String name)
Add a dynamic thread.
|
void |
awaitMessage(AbstractActor actor)
Suspend an actor until it has a read message.
|
int |
broadcast(Message message,
Actor from)
Send a message to all actors.
|
protected void |
clearDispatchCount() |
protected Map<String,Actor> |
cloneActors() |
protected void |
copyMembers(AbstractActor[] res) |
Actor |
createActor(Class<? extends Actor> clazz,
String name)
Create an actor and associate it with this manager.
|
Actor |
createActor(Class<? extends Actor> clazz,
String name,
Map<String,Object> options)
Create an actor and associate it with this manager.
|
Actor |
createAndStartActor(Class<? extends Actor> clazz,
String name)
Create an actor and associate it with this manager then start it
|
Actor |
createAndStartActor(Class<? extends Actor> clazz,
String name,
Map<String,Object> options)
Create an actor and associate it with this manager then start it.
|
protected void |
createThread(int i) |
void |
detachActor(Actor actor)
Detach an actor.
|
void |
detachAllActors()
Detach all actors.
|
int |
getActiveRunnableCount()
Get the number of busy runnables (equivalent to threads).
|
int |
getActorCount(Class type)
Count the number of actors of a given type.
|
AbstractActor[] |
getActors()
Get actors managed by this manager.
|
Message[] |
getAndClearSentMessages(Actor actor)
Get a list of pending messages and then clear it.
|
Set<String> |
getCategories()
Get the current categories.
|
int |
getCategorySize(String name)
Get the number of actors in a category.
|
static DefaultActorManager |
getDefaultInstance()
Get the default instance.
|
int |
getDispatchPerSecondCount()
Get most recent thread dispatches/second count.
|
long |
getLastDispatchTime() |
long |
getLastSendTime() |
int |
getMaxTrendValue() |
boolean |
getRecordSentMessages() |
DefaultActorManager.ActorRunnable |
getRunnable(String name)
Get the Runnable by name.
|
int |
getSendPerSecondCount()
Get most recent sends/second count.
|
protected int |
getThreadCount(Map<String,Object> options) |
ThreadGroup |
getThreadGroup() |
int |
getThreadPriority()
Get the thread priority to use.
|
Thread[] |
getThreads()
Get the actor threads.
|
int |
getTrendValue() |
protected void |
incDispatchCount() |
void |
initialize()
Initialize this manager.
|
void |
initialize(Map<String,Object> options)
Initialize this manager.
|
void |
randomizeActors()
Create a list of actors in a pseudo-random order.
|
void |
removeThread(String name)
Remove a dynamic thread.
|
int |
send(Message message,
Actor from,
Actor to)
Send a message.
|
int |
send(Message message,
Actor from,
Actor[] to)
Send a message.
|
int |
send(Message message,
Actor from,
Collection<Actor> to)
Send a message.
|
int |
send(Message message,
Actor from,
String category)
Send a message.
|
void |
setMaxTrendValue(int maxTrendValue) |
void |
setRecordSentMessages(boolean recordSentMessages) |
void |
setTrendValue(int trendValue) |
void |
startActor(Actor actor)
Start an actor.
|
void |
terminate()
Terminate processing.
|
void |
terminateAndWait()
Terminate processing and wait for all threads to stop.
|
protected void |
updateLastDispatchCount() |
void |
waitForThreads()
Wait for all threads to stop.
|
public static final int DEFAULT_ACTOR_THREAD_COUNT
protected static DefaultActorManager instance
public static final String ACTOR_THREAD_COUNT
protected Map<String,AbstractActor> actors
protected Map<String,AbstractActor> runnables
protected Map<String,AbstractActor> waiters
protected Random rand
protected boolean recordSentMessages
protected volatile long lastSendTime
protected volatile long lastDispatchTime
protected volatile int sendCount
protected volatile int lastSendCount
protected volatile int dispatchCount
protected volatile int lastDispatchCount
protected Map<String,DefaultActorManager.ActorRunnable> trunnables
protected ThreadGroup threadGroup
protected static int groupCount
protected int trendValue
protected int maxTrendValue
public static DefaultActorManager getDefaultInstance()
public void detachActor(Actor actor)
detachActor 在接口中 ActorManagerpublic void detachAllActors()
public void randomizeActors()
public int getActorCount(Class type)
getActorCount 在接口中 ActorManagertype - the class to count (also its subclasses)public AbstractActor[] getActors()
protected void copyMembers(AbstractActor[] res)
public boolean getRecordSentMessages()
public void setRecordSentMessages(boolean recordSentMessages)
public Message[] getAndClearSentMessages(Actor actor)
actor - receiving actorpublic long getLastSendTime()
public long getLastDispatchTime()
public int getSendPerSecondCount()
public int getDispatchPerSecondCount()
protected void incDispatchCount()
protected void clearDispatchCount()
protected void updateLastDispatchCount()
public int send(Message message, Actor from, Actor to)
send 在接口中 ActorManagermessage - message tofrom - source actorto - target actorpublic int send(Message message, Actor from, Actor[] to)
send 在接口中 ActorManagermessage - message tofrom - source actorto - target actorspublic int send(Message message, Actor from, Collection<Actor> to)
send 在接口中 ActorManagermessage - message tofrom - source actorto - target actorspublic int send(Message message, Actor from, String category)
send 在接口中 ActorManagermessage - message tofrom - source actorcategory - target actor categorypublic int broadcast(Message message, Actor from)
broadcast 在接口中 ActorManagermessage - message tofrom - source actorpublic Set<String> getCategories()
getCategories 在接口中 ActorManagerpublic int getCategorySize(String name)
name - public void awaitMessage(AbstractActor actor)
actor - receiving actorpublic DefaultActorManager.ActorRunnable getRunnable(String name)
name - thread namepublic int getActiveRunnableCount()
public void removeThread(String name)
name - public ThreadGroup getThreadGroup()
protected void createThread(int i)
public void initialize()
initialize 在接口中 ActorManagerpublic void initialize(Map<String,Object> options)
initialize 在接口中 ActorManageroptions - map of optionspublic int getThreadPriority()
public Thread[] getThreads()
public void terminateAndWait()
terminateAndWait 在接口中 ActorManagerpublic void waitForThreads()
public void terminate()
terminate 在接口中 ActorManagerpublic Actor createActor(Class<? extends Actor> clazz, String name)
createActor 在接口中 ActorManagerclazz - the actor classthe - actor name; must be uniquepublic Actor createAndStartActor(Class<? extends Actor> clazz, String name)
createAndStartActor 在接口中 ActorManagerclazz - the actor classthe - actor name; must be uniquepublic Actor createAndStartActor(Class<? extends Actor> clazz, String name, Map<String,Object> options)
createAndStartActor 在接口中 ActorManagerclazz - the actor classthe - actor name; must be uniqueoptions - actor optionspublic Actor createActor(Class<? extends Actor> clazz, String name, Map<String,Object> options)
createActor 在接口中 ActorManagerclazz - the actor classthe - actor name; must be uniqueoptions - actor optionspublic void startActor(Actor actor)
startActor 在接口中 ActorManageractor - the actorpublic int getTrendValue()
public void setTrendValue(int trendValue)
public int getMaxTrendValue()
public void setMaxTrendValue(int maxTrendValue)
Copyright © 2021. All rights reserved.