本文整理了Java中io.vertx.core.Context.isOnWorkerThread()
方法的一些代码示例,展示了Context.isOnWorkerThread()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Context.isOnWorkerThread()
方法的具体详情如下:
包路径:io.vertx.core.Context
类名称:Context
方法名:isOnWorkerThread
[英]Is the current thread a worker thread?
NOTE! This is not always the same as calling Context#isWorkerContext. If you are running blocking code from an event loop context, then this will return true but Context#isWorkerContext will return false.
[中]当前线程是工作线程吗?
笔记这并不总是与调用上下文#isWorkerContext相同。如果您正在从事件循环上下文运行阻塞代码,那么这将返回true,但context#isWorkerContext将返回false。
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public Verticle createVerticle(String verticleName, ClassLoader classLoader) throws Exception {
if (failInCreate) {
throw new ClassNotFoundException("whatever");
}
this.identifier = verticleName;
this.createContext = Vertx.currentContext();
this.createWorkerThread = Context.isOnWorkerThread();
return verticle;
}
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void stop() throws Exception {
assertTrue(Context.isOnVertxThread());
assertFalse(Context.isOnWorkerThread());
assertTrue(Context.isOnEventLoopThread());
}
};
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void start() throws Exception {
assertTrue(Context.isOnVertxThread());
assertFalse(Context.isOnWorkerThread());
assertTrue(Context.isOnEventLoopThread());
}
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void start() throws Exception {
assertTrue(Context.isOnVertxThread());
assertTrue(Context.isOnWorkerThread());
assertFalse(Context.isOnEventLoopThread());
}
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void stop() throws Exception {
assertTrue(Context.isOnVertxThread());
assertTrue(Context.isOnWorkerThread());
assertFalse(Context.isOnEventLoopThread());
}
};
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void start() throws Exception {
vertx.executeBlocking(fut -> {
thread.set(Thread.currentThread());
assertTrue(Context.isOnVertxThread());
assertTrue(Context.isOnWorkerThread());
assertFalse(Context.isOnEventLoopThread());
assertTrue(Thread.currentThread().getName().startsWith(poolName + "-"));
fut.complete();
}, onSuccess(v -> {
vertx.undeploy(context.deploymentID());
}));
}
}, new DeploymentOptions().setWorkerPoolName(poolName), onSuccess(v -> {}));
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void start() throws Exception {
thread.set(Thread.currentThread());
assertTrue(Context.isOnVertxThread());
assertTrue(Context.isOnWorkerThread());
assertFalse(Context.isOnEventLoopThread());
assertTrue(Thread.currentThread().getName().startsWith(poolName + "-"));
context.runOnContext(v -> {
vertx.undeploy(context.deploymentID());
});
}
}, new DeploymentOptions().setWorker(true).setWorkerPoolName(poolName), onSuccess(deployment::set));
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testThread() {
String poolName = TestUtils.randomAlphaString(10);
WorkerExecutor worker = vertx.createSharedWorkerExecutor(poolName);
AtomicBoolean onVertxThread = new AtomicBoolean();
AtomicBoolean onWorkerThread = new AtomicBoolean();
AtomicBoolean onEventLoopThread = new AtomicBoolean();
AtomicReference<String> threadName = new AtomicReference<>();
worker.executeBlocking(fut -> {
onVertxThread.set(Context.isOnVertxThread());
onWorkerThread.set(Context.isOnWorkerThread());
onEventLoopThread.set(Context.isOnEventLoopThread());
threadName.set(Thread.currentThread().getName());
fut.complete(null);
}, ar -> {
testComplete();
});
// Use regular assertions because the thread name does not start with "vert.x-"
// and it confuses the VertxTestBase asserts
assertWaitUntil(() -> threadName.get() != null);
assertTrue(onVertxThread.get());
assertTrue(onWorkerThread.get());
assertFalse(onEventLoopThread.get());
assertTrue(threadName.get().startsWith(poolName + "-"));
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testExecuteOrderedBlocking() throws Exception {
Context context = vertx.getOrCreateContext();
context.executeBlocking(f -> {
assertTrue(Context.isOnWorkerThread());
f.complete(1 + 2);
}, r -> {
assertTrue(Context.isOnEventLoopThread());
assertEquals(r.result(), 3);
testComplete();
});
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testWorkerExecuteFromIo() throws Exception {
AtomicReference<ContextInternal> workerContext = new AtomicReference<>();
CountDownLatch latch = new CountDownLatch(1);
vertx.deployVerticle(new AbstractVerticle() {
@Override
public void start() throws Exception {
workerContext.set((ContextInternal) context);
latch.countDown();
}
}, new DeploymentOptions().setWorker(true));
awaitLatch(latch);
workerContext.get().nettyEventLoop().execute(() -> {
assertNull(Vertx.currentContext());
workerContext.get().nettyEventLoop().execute(() -> {
workerContext.get().executeFromIO(v -> {
assertSame(workerContext.get(), Vertx.currentContext());
assertTrue(Context.isOnWorkerThread());
testComplete();
});
});
});
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testExecuteUnorderedBlocking() throws Exception {
Context context = vertx.getOrCreateContext();
context.executeBlocking(f -> {
assertTrue(Context.isOnWorkerThread());
f.complete(1 + 2);
}, false, r -> {
assertTrue(Context.isOnEventLoopThread());
assertEquals(r.result(), 3);
testComplete();
});
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
};
if (creatingContext != null) {
if(options.getProtocolVersion() == HttpVersion.HTTP_2 && Context.isOnWorkerThread()) {
throw new IllegalStateException("Cannot use HttpClient with HTTP_2 in a worker");
代码示例来源:origin: eclipse-vertx/vert.x
assertSame(ctx, vertx.getOrCreateContext());
assertTrue(Thread.currentThread().getName().startsWith("vert.x-worker-thread"));
assertTrue(Context.isOnWorkerThread());
assertFalse(Context.isOnEventLoopThread());
try {
assertSame(ctx, vertx.getOrCreateContext());
assertTrue(Thread.currentThread().getName().startsWith("vert.x-eventloop-thread"));
assertFalse(Context.isOnWorkerThread());
assertTrue(Context.isOnEventLoopThread());
assertEquals("done!", res);
代码示例来源:origin: eclipse-vertx/vert.x
@Override
public void start() throws Exception {
assertTrue(Vertx.currentContext().isWorkerContext());
assertTrue(Context.isOnWorkerThread());
HttpServer server1 = vertx.createHttpServer(new HttpServerOptions()
.setHost(HttpTestBase.DEFAULT_HTTP_HOST).setPort(HttpTestBase.DEFAULT_HTTP_PORT));
server1.requestHandler(req -> {
assertTrue(Vertx.currentContext().isWorkerContext());
assertTrue(Context.isOnWorkerThread());
Buffer buf = Buffer.buffer();
req.handler(buf::appendBuffer);
}).listen(onSuccess(s -> {
assertTrue(Vertx.currentContext().isWorkerContext());
assertTrue(Context.isOnWorkerThread());
HttpClient client = vertx.createHttpClient();
client.put(HttpTestBase.DEFAULT_HTTP_PORT, HttpTestBase.DEFAULT_HTTP_HOST, "/blah", onSuccess(resp -> {
assertEquals(200, resp.statusCode());
assertTrue(Vertx.currentContext().isWorkerContext());
assertTrue(Context.isOnWorkerThread());
resp.handler(buf -> {
assertEquals("bye", buf.toString());
代码示例来源:origin: eclipse-vertx/vert.x
assertSame(ctx, vertx.getOrCreateContext());
assertTrue(Thread.currentThread().getName().startsWith("vert.x-worker-thread"));
assertTrue(Context.isOnWorkerThread());
assertFalse(Context.isOnEventLoopThread());
try {
assertSame(ctx, vertx.getOrCreateContext());
assertTrue(Thread.currentThread().getName().startsWith("vert.x-eventloop-thread"));
assertFalse(Context.isOnWorkerThread());
assertTrue(Context.isOnEventLoopThread());
future.complete("done!");
assertSame(ctx, vertx.getOrCreateContext());
assertTrue(Thread.currentThread().getName().startsWith("vert.x-eventloop-thread"));
assertFalse(Context.isOnWorkerThread());
assertTrue(Context.isOnEventLoopThread());
assertEquals("done!", res);
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testStandardRightThread() throws Exception {
assertFalse(Context.isOnVertxThread());
Verticle verticle = new AbstractVerticle() {
@Override
public void start() throws Exception {
assertTrue(Context.isOnVertxThread());
assertFalse(Context.isOnWorkerThread());
assertTrue(Context.isOnEventLoopThread());
}
@Override
public void stop() throws Exception {
assertTrue(Context.isOnVertxThread());
assertFalse(Context.isOnWorkerThread());
assertTrue(Context.isOnEventLoopThread());
}
};
vertx.deployVerticle(verticle, onSuccess(res -> {
assertTrue(Context.isOnVertxThread());
assertFalse(Context.isOnWorkerThread());
assertTrue(Context.isOnEventLoopThread());
vertx.undeploy(res, onSuccess(res2 -> {
assertTrue(Context.isOnVertxThread());
assertFalse(Context.isOnWorkerThread());
assertTrue(Context.isOnEventLoopThread());
testComplete();
}));
}));
await();
}
代码示例来源:origin: eclipse-vertx/vert.x
@Test
public void testWorkerRightThread() throws Exception {
assertFalse(Context.isOnVertxThread());
Verticle verticle = new AbstractVerticle() {
@Override
public void start() throws Exception {
assertTrue(Context.isOnVertxThread());
assertTrue(Context.isOnWorkerThread());
assertFalse(Context.isOnEventLoopThread());
}
@Override
public void stop() throws Exception {
assertTrue(Context.isOnVertxThread());
assertTrue(Context.isOnWorkerThread());
assertFalse(Context.isOnEventLoopThread());
}
};
vertx.deployVerticle(verticle, new DeploymentOptions().setWorker(true), onSuccess(res -> {
assertTrue(Context.isOnVertxThread());
assertFalse(Context.isOnWorkerThread());
assertTrue(Context.isOnEventLoopThread());
vertx.undeploy(res, onSuccess(res2 -> {
assertTrue(Context.isOnVertxThread());
assertFalse(Context.isOnWorkerThread());
assertTrue(Context.isOnEventLoopThread());
testComplete();
}));
}));
await();
}
代码示例来源:origin: io.vertx/vertx-core
@Override
public Verticle createVerticle(String verticleName, ClassLoader classLoader) throws Exception {
if (failInCreate) {
throw new ClassNotFoundException("whatever");
}
this.identifier = verticleName;
this.createContext = Vertx.currentContext();
this.createWorkerThread = Context.isOnWorkerThread();
return verticle;
}
代码示例来源:origin: io.vertx/vertx-core
@Override
public void start() throws Exception {
assertTrue(Context.isOnVertxThread());
assertFalse(Context.isOnWorkerThread());
assertTrue(Context.isOnEventLoopThread());
}
代码示例来源:origin: io.vertx/vertx-core
@Override
public void start() throws Exception {
assertTrue(Context.isOnVertxThread());
assertTrue(Context.isOnWorkerThread());
assertFalse(Context.isOnEventLoopThread());
}
内容来源于网络,如有侵权,请联系作者删除!