I have a service (webservice soap) sending rpc to a grpc server).
When I look at the thread dump I see thread names like this : "grpc-default-worker-ELG-13-7"
or "grpc-default-executor-1"...
What are these threads ??
example of stack :
```
"grpc-default-executor-1" #972 daemon prio=5 os_prio=0 cpu=3938.33ms elapsed=306.27s tid=0x00007f410804a800 nid=0x431 waiting on condition [0x00007f4049fde000]
java.lang.Thread.State: TIMED_WAITING (parking)
at jdk.internal.misc.Unsafe.park(java...@11.0.3/Native Method)
- parking to wait for <0x00000000ea55fba0> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(java...@11.0.3/LockSupport.java:234)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(java...@11.0.3/SynchronousQueue.java:462)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(java...@11.0.3/SynchronousQueue.java:361)
at java.util.concurrent.SynchronousQueue.poll(java...@11.0.3/SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(java...@11.0.3/ThreadPoolExecutor.java:1053)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java...@11.0.3/ThreadPoolExecutor.java:1114)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java...@11.0.3/ThreadPoolExecutor.java:628)
at java.lang.Thread.run(java...@11.0.3/Thread.java:834)
```
or
```
"grpc-default-worker-ELG-13-1" #940 daemon prio=5 os_prio=0 cpu=3135.01ms elapsed=345.67s tid=0x00007f40c0039800 nid=0x411 runnable [0x00007f4046cad000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPoll.wait(java...@11.0.3/Native Method)
at sun.nio.ch.EPollSelectorImpl.doSelect(java...@11.0.3/EPollSelectorImpl.java:120)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(java...@11.0.3/SelectorImpl.java:124)
- locked <0x00000000ea568db0> (a io.netty.channel.nio.SelectedSelectionKeySet)
```
Epoll.wait ??? poll the grpcserver ? heartbeat ?
calls to the service itself are done by http thread like "http-nio-8080-exec-206"..On the other hand this one sounds logic because calls to the service are done synchronously. Thanks !
Hi.I have a service (webservice soap) sending rpc to a grpc server).
When I look at the thread dump I see thread names like this : "grpc-default-worker-ELG-13-7"
or "grpc-default-executor-1"...
What are these threads ??
example of stack :
```
"grpc-default-executor-1" #972 daemon prio=5 os_prio=0 cpu=3938.33ms elapsed=306.27s tid=0x00007f410804a800 nid=0x431 waiting on condition [0x00007f4049fde000]
java.lang.Thread.State: TIMED_WAITING (parking)
at jdk.internal.misc.Unsafe.park(java...@11.0.3/Native Method)
- parking to wait for <0x00000000ea55fba0> (a java.util.concurrent.SynchronousQueue$TransferStack)
at java.util.concurrent.locks.LockSupport.parkNanos(java.ba...@11.0.3/LockSupport.java:234)
at java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(java...@11.0.3/SynchronousQueue.java:462)
at java.util.concurrent.SynchronousQueue$TransferStack.transfer(java.ba...@11.0.3/SynchronousQueue.java:361)
at java.util.concurrent.SynchronousQueue.poll(java.ba...@11.0.3/SynchronousQueue.java:937)
at java.util.concurrent.ThreadPoolExecutor.getTask(java...@11.0.3/ThreadPoolExecutor.java:1053)
at java.util.concurrent.ThreadPoolExecutor.runWorker(java...@11.0.3/ThreadPoolExecutor.java:1114)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(java...@11.0.3/ThreadPoolExecutor.java:628)
at java.lang.Thread.run(java.ba...@11.0.3/Thread.java:834)
```or
```
"grpc-default-worker-ELG-13-1" #940 daemon prio=5 os_prio=0 cpu=3135.01ms elapsed=345.67s tid=0x00007f40c0039800 nid=0x411 runnable [0x00007f4046cad000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPoll.wait(java.ba...@11.0.3/Native Method)
at sun.nio.ch.EPollSelectorImpl.doSelect(java...@11.0.3/EPollSelectorImpl.java:120)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(java.base@11.0.3/SelectorImpl.java:124)
- locked <0x00000000ea568db0> (a io.netty.channel.nio.SelectedSelectionKeySet)
```