下面列出了怎么用com.intellij.util.concurrency.QueueProcessor的API类实例代码及写法,或者点击链接到github查看源代码。
public DebugProcess(@NotNull XDebugSession session,
Project project, Module module,
int port) throws IOException {
super(session);
mClassesWithStatics = new Vector<String>();
mProject = project;
mModule = module;
mDeferredQueue =
new LinkedList<Pair<debugger.Command, MessageListener>>();
mListenerQueue = new LinkedList<MessageListener>();
mServerSocket = new java.net.ServerSocket(port);
mBreakpointHandlers = this.createBreakpointHandlers();
mMap =
new HashMap<XLineBreakpoint<XBreakpointProperties>, Integer>();
mWriteQueue = QueueProcessor.createRunnableQueueProcessor(QueueProcessor.ThreadToUse.POOLED);
}
private void runSafely(@Nullable Runnable task) {
try {
if (!myDisposed && task != null) {
QueueProcessor.runSafely(task);
}
}
finally {
/** remove from the list after execution to be able for {@link #waitForAllExecuted(long, TimeUnit)} to wait for completion */
synchronized (LOCK) {
myRequests.remove(this);
myFuture = null;
}
}
}
public SequentialLimitedLifoExecutor(Disposable parentDisposable, int maxTasks,
@Nonnull ThrowableConsumer<Task, ? extends Throwable> loadProcess) {
myMaxTasks = maxTasks;
myLoadProcess = loadProcess;
myLoader = new QueueProcessor<>(new DetailsLoadingTask());
Disposer.register(parentDisposable, this);
}
public FlutterConsoleLogManager(@NotNull ConsoleView console, @NotNull FlutterApp app) {
this.console = console;
this.app = app;
assert (app.getVmService() != null);
this.service = app.getVmService();
app.addStateListener(new FlutterApp.FlutterAppListener() {
@Override
public void notifyFrameRendered() {
frameErrorCount = 0;
}
@Override
public void stateChanged(FlutterApp.State newState) {
frameErrorCount = 0;
}
@Override
public void notifyAppReloaded() {
frameErrorCount = 0;
}
@Override
public void notifyAppRestarted() {
frameErrorCount = 0;
}
});
assert (app.getFlutterDebugProcess() != null);
objectGroup = InspectorService.createGroup(app, app.getFlutterDebugProcess(), app.getVmService(), "console-group");
objectGroup.whenCompleteAsync((group, error) -> {
if (group != null) {
Disposer.register(app, group.getInspectorService());
}
});
if (queue == null) {
queue = QueueProcessor.createRunnableQueueProcessor();
}
}
public FlutterConsoleLogManager(@NotNull ConsoleView console, @NotNull FlutterApp app) {
this.console = console;
this.app = app;
assert (app.getVmService() != null);
this.service = app.getVmService();
app.addStateListener(new FlutterApp.FlutterAppListener() {
@Override
public void notifyFrameRendered() {
frameErrorCount = 0;
}
@Override
public void stateChanged(FlutterApp.State newState) {
frameErrorCount = 0;
}
@Override
public void notifyAppReloaded() {
frameErrorCount = 0;
}
@Override
public void notifyAppRestarted() {
frameErrorCount = 0;
}
});
assert (app.getFlutterDebugProcess() != null);
objectGroup = InspectorService.createGroup(app, app.getFlutterDebugProcess(), app.getVmService(), "console-group");
objectGroup.whenCompleteAsync((group, error) -> {
if (group != null) {
Disposer.register(app, group.getInspectorService());
}
});
if (queue == null) {
queue = QueueProcessor.createRunnableQueueProcessor();
}
}
public BackgroundTaskQueue(@Nullable Project project, @Nonnull String title) {
myTitle = title;
Condition disposeCondition = project != null ? project.getDisposed() : ApplicationManager.getApplication().getDisposed();
myProcessor = new QueueProcessor<>(TaskData::consume, true, ThreadToUse.AWT, disposeCondition);
}