2 Replies Latest reply on Mar 6, 2014 12:02 AM by zhs

    What is the different between {XNIO-1 I/O} thread pool and {default I/O} thread pool

    zhs

      Hi all,

       

      I'm running WildFly 8 on GNU/Linux, I had a look at running threads via jstack, I found two thread pools related with epoll, stack traces are the same:

       

      "XNIO-1 I/O-1" prio=10 tid=0x0000000002021800 nid=0x418e runnable [0x00007f0cf93c1000]

         java.lang.Thread.State: RUNNABLE

              at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)

              at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:228)

              at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:81)

              at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)

              - locked <0x00000000e7739e80> (a sun.nio.ch.Util$2)

              - locked <0x00000000e7739e98> (a java.util.Collections$UnmodifiableSet)

              - locked <0x00000000e6e284a8> (a sun.nio.ch.EPollSelectorImpl)

              at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)

              at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:102)

              at org.xnio.nio.WorkerThread.run(WorkerThread.java:497)

       

      "default I/O-1" prio=10 tid=0x0000000001f2a800 nid=0x4181 runnable [0x00007f0cf97ad000]

         java.lang.Thread.State: RUNNABLE

              at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)

              at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:228)

              at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:81)

              at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)

              - locked <0x00000000e5e2f078> (a sun.nio.ch.Util$2)

              - locked <0x00000000e5e2f060> (a java.util.Collections$UnmodifiableSet)

              - locked <0x00000000e609f920> (a sun.nio.ch.EPollSelectorImpl)

              at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)

              at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:102)

              at org.xnio.nio.WorkerThread.run(WorkerThread.java:497)

       

      I know the {default I/O} thread pool is from default worker, but what's the difference between it and {XNIO-1 I/O}?

       

      Thanks