Про чтение java сокета заблокировано, ожидая какого ресурса - PullRequest
0 голосов
/ 17 февраля 2019

При чтении с сервера клиентский сокет заблокирован

"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 заблокировано в функции опроса?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...