本文整理汇总了Java中org.objectweb.proactive.RunActive类的典型用法代码示例。如果您正苦于以下问题:Java RunActive类的具体用法?Java RunActive怎么用?Java RunActive使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
RunActive类属于org.objectweb.proactive包,在下文中一共展示了RunActive类的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: ActiveBody
import org.objectweb.proactive.RunActive; //导入依赖的package包/类
/**
* Builds the body object, then fires its service thread
*/
public ActiveBody(ConstructorCall c, String nodeURL, Active activity, MetaObjectFactory factory)
throws java.lang.reflect.InvocationTargetException, ConstructorCallExecutionFailedException,
ActiveObjectCreationException {
// Creates the reified object
super(c.execute(), nodeURL, activity, factory);
Object reifiedObject = this.localBodyStrategy.getReifiedObject();
// when building a component, encapsulate the functional activity
// TODO_M read some flag before doing this?
if (getPAComponentImpl() != null) {
try {
GCM.getPriorityController(getPAComponentImpl());
Utils.getPAMembraneController(getPAComponentImpl());
activity = new ComponentMembraneActivityPriority(activity, reifiedObject);
} catch (NoSuchInterfaceException nsie1) {
try {
GCM.getPriorityController(getPAComponentImpl());
activity = new ComponentActivityPriority(activity, reifiedObject);
} catch (NoSuchInterfaceException nsie2) {
try {
Utils.getPAMembraneController(getPAComponentImpl());
activity = new ComponentMembraneActivity(activity, reifiedObject);
} catch (NoSuchInterfaceException nsie3) {
activity = new ComponentActivity(activity, reifiedObject);
}
}
}
}
// InitActive
if ((activity != null) && activity instanceof InitActive) {
this.initActive = (InitActive) activity;
} else if (reifiedObject instanceof InitActive) {
this.initActive = (InitActive) reifiedObject;
}
// RunActive
if ((activity != null) && activity instanceof RunActive) {
this.runActive = (RunActive) activity;
} else if (reifiedObject instanceof RunActive) {
this.runActive = (RunActive) reifiedObject;
} else {
this.runActive = new FIFORunActive();
}
// EndActive
if ((activity != null) && activity instanceof EndActive) {
this.endActive = (EndActive) activity;
} else if (reifiedObject instanceof EndActive) {
this.endActive = (EndActive) reifiedObject;
} else {
this.endActive = null;
}
startBody();
}
示例2: run
import org.objectweb.proactive.RunActive; //导入依赖的package包/类
/**
* The method executed by the active thread that will eventually launch the live
* method of the active object of the default live method of this body.
*/
public void run() {
// Notify the rmi thread that the body has been registered into
// the localBodyStore.
synchronized (this) {
activityStarted();
this.notify();
}
boolean callTerminate = false;
// run the activity of the body
try {
// execute the initialization if needed. Only once
if (this.initActive != null) {
this.initActive.initActivity(this);
this.initActive = null; // we won't do it again
}
/* We may race with a termination request in immediate service */
RunActive thisRunActive = this.runActive;
if (thisRunActive != null) {
thisRunActive.runActivity(this);
}
// the body terminate its activity
if (isActive()) {
// serve remaining requests if non dead
for (;;) {
BlockingRequestQueue queue;
try {
/* We may race with a termination request in immediate service */
queue = this.localBodyStrategy.getRequestQueue();
if (queue.isEmpty()) {
break;
}
} catch (ProActiveRuntimeException pre) {
break;
}
serve(queue.removeOldest());
}
}
} catch (Exception e) {
logger.error("Exception occured in runActivity method of body " + toString() +
". Now terminating the body", e);
callTerminate = true;
} finally {
// execute the end of activity if not after migration
if ((!this.hasJustMigrated) && (this.endActive != null)) {
this.endActive.endActivity(this);
}
if (callTerminate) {
terminate();
} else if (isActive()) {
activityStopped(!this.getFuturePool().remainingAC());
}
}
}