io.vertx.core.Context.isOnWorkerThread()方法的使用及代码示例

x33g5p2x  于2022-01-18 转载在 其他  
字(10.0k)|赞(0)|评价(0)|浏览(116)

本文整理了Java中io.vertx.core.Context.isOnWorkerThread()方法的一些代码示例,展示了Context.isOnWorkerThread()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Context.isOnWorkerThread()方法的具体详情如下:
包路径:io.vertx.core.Context
类名称:Context
方法名:isOnWorkerThread

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());
}

相关文章