grpc中的各种线程组是什么?

admin 3783 2025-06-06 08:31:05

我使用了java应用程序的线程转储来研究延迟问题。我看到在timed_waiting状态下有很多GRPC线程。

我是grpc的新手,我想了解以下内容。

-默认工作线程的功能是什么?-缺省执行器线程的功能是什么?IO线程正在等待blockingStub调用。那么,它在等待哪个线程/资源呢?

代码语言:javascript运行复制grpc-default-worker-ELG-3-1

THREAD ID: 330

STATE: RUNNABLE

stackTrace:

java.lang.Thread.State: RUNNABLE

at app//io.grpc.netty.shaded.io.netty.channel.epoll.Native.epollWait0(Native Method)

at app//io.grpc.netty.shaded.io.netty.channel.epoll.Native.epollWait(Native.java:132)

at app//io.grpc.netty.shaded.io.netty.channel.epoll.EpollEventLoop.epollWait(EpollEventLoop.java:286)

at app//io.grpc.netty.shaded.io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:351)

at app//io.grpc.netty.shaded.io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)

at app//io.grpc.netty.shaded.io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)

at app//io.grpc.netty.shaded.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)

at java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Locked ownable synchronizers:

- None代码语言:javascript运行复制grpc-default-executor-76

THREAD ID : 1768

STATE : TIMED_WAITING

stackTrace:

java.lang.Thread.State: TIMED_WAITING

at java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)

- parking to wait for <6af9e3ce> (a java.util.concurrent.SynchronousQueue$TransferStack)

at java.base@11.0.11/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)

at java.base@11.0.11/java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(SynchronousQueue.java:462)

at java.base@11.0.11/java.util.concurrent.SynchronousQueue$TransferStack.transfer(SynchronousQueue.java:361)

at java.base@11.0.11/java.util.concurrent.SynchronousQueue.poll(SynchronousQueue.java:937)

at java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1053)

at java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1114)

at java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)

at java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Locked ownable synchronizers:

- None代码语言:javascript运行复制io-pool-145

THREAD ID : 1683

STATE : WAITING

stackTrace:

java.lang.Thread.State: WAITING

at java.base@11.0.11/jdk.internal.misc.Unsafe.park(Native Method)

- parking to wait for (a io.grpc.stub.ClientCalls$ThreadlessExecutor)

at java.base@11.0.11/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)

at app//io.grpc.stub.ClientCalls$ThreadlessExecutor.waitAndDrain(ClientCalls.java:731)

at app//io.grpc.stub.ClientCalls.blockingUnaryCall(ClientCalls.java:149)

xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx

xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx

xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx

xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx

xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx

xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx

xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx

xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx

xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx

xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx xx

at java.base@11.0.11/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)

at java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)

at java.base@11.0.11/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)

at java.base@11.0.11/java.lang.Thread.run(Thread.java:829)

Locked ownable synchronizers:

- Locked <41493122> (a java.util.concurrent.ThreadPoolExecutor$Worker)

上一篇
下一篇
相关文章
点击进入首页