찾다

 >  Q&A  >  본문

Java:底端上送心跳时线程继续执行,若超过5秒未上送心跳则线程中断

不用贴代码,赐我点儿思路就可以,我只会设置线程超时,但是底端上送心跳时这个线程应该是不受影响继续执行的,设置了超时时间,就算心跳上来了到了超时时间这个线程也没了,比较苦恼=。=

或者是否可以更新线程超时时间呢?每次心跳过来我都重新设置一个线程的超时时间

PHP中文网PHP中文网2889일 전374

모든 응답(3)나는 대답할 것이다

  • 伊谢尔伦

    伊谢尔伦2017-04-18 09:18:17

    고정된 시간 초과 아이디어를 사용하지 마세요.
    모든 스레드를 관리하고 하트비트를 수신하는 전용 스레드가 있습니다. 이 스레드는 자연스럽게 모든 스레드의 하트비트 정보를 가지고 있으며, 어떤 스레드가 5초 이상 하트비트를 수신하지 않았는지 자연스럽게 알 수 있습니다. 스레드가 인터럽트 신호를 보내야 합니다.

    회신하다
    0
  • ringa_lee

    ringa_lee2017-04-18 09:18:17

    간단한 방법은 읽기 시간 제한을 직접 설정하는 것입니다. 두 번째는 비차단 IO를 사용하여 통신을 달성함으로써 타임아웃 프로그램이 현재 스레드에서 직접 수행될 수 있도록 하는 것입니다.

    회신하다
    0
  • 巴扎黑

    巴扎黑2017-04-18 09:18:17

    Java 통신에 Netty를 사용하면 후회하지 않을 선택입니다

    회신하다
    0
  • 취소회신하다