关于java套接字读取阻塞等待什么系统资源?

时间:2019-02-17 10:04:05

标签: java sockets

从服务器读取时,有一个客户端套接字被阻塞

"main" #1 prio=5 os_prio=0 tid=0x00007f0870008800 nid=0x32da runnable [0x00007f087689c000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)

起初我认为它是BLOCKED状态,但是它是RUNNABLE状态。从文档中我知道

  

处于可运行状态的线程正在Java虚拟机中执行   机器,但它可能正在等待运行中的其他资源   系统,例如处理器。

我想知道系统资源在等待什么?所以我执行下面的命令

gdb -p 13017
0x00007f087647d2fd in pthread_join () from /lib64/libpthread.so.0
(gdb)

这是否意味着它现在在pthread_join函数中被阻止了?

  

pthread_join()函数等待线程指定的线程          终止。

同时执行# nc server_ip socket_port以比较和执行gdb -p nc_pid

0x00007f2846468248 in poll () from /lib64/libc.so.6
(gdb)

这是否意味着nc在轮询功能中被阻止了?

0 个答案:

没有答案