検索

ホームページ  >  に質問  >  本文

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

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

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

PHP中文网PHP中文网2889日前366

全員に返信(3)返信します

  • 伊谢尔伦

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

    固定タイムアウトという考えを使用しないでください。
    すべてのスレッドを管理し、ハートビートを受信するための専用のスレッドがあり、このスレッドにはすべてのスレッドのハートビート情報が含まれており、どのスレッドが 5 秒以上ハートビートを受信して​​いないのかも当然わかります。スレッドは割り込みシグナルを送信する必要があります。

    返事
    0
  • ringa_lee

    ringa_lee2017-04-18 09:18:17

    簡単な方法は、読み取りタイムアウトを直接設定することです。 2 つ目は、ノンブロッキング IO を使用して通信を実装し、タイムアウト プログラムを現在のスレッドで直接実行できるようにすることです。

    返事
    0
  • 巴扎黑

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

    Java 通信に Netty を使用します。後悔しない選択です

    返事
    0
  • キャンセル返事