首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >tyrus -如何清理守护进程线程

tyrus -如何清理守护进程线程
EN

Stack Overflow用户
提问于 2013-10-09 14:01:20
回答 2查看 2.4K关注 0票数 1

tyrus connectToServer‘握手响应未收到’

如何在没有创建越来越多的守护进程、灰熊内核和灰熊工作线程的情况下重新尝试连接。有没有调用会话或客户端来杀死/清理线程1到4以及灰熊内核和灰熊工作线程?

例如JAVA主线,它试图永远建立和维护与服务器的连接,该服务器可能没有运行,也可能定期重新启动。

代码语言:javascript
复制
public void onClose(Session session, CloseReason closeReason) {
    latch.countDown();
}


enter code here
public static void main(String[] args) {
    while (true) {
        latch = new CountDownLatch(1);
        ClientManager client = ClientManager.createClient();
        try {
            client.connectToServer(wsListener.class, new URI("wss://<host>/ws"));
            latch.await();
        }
        catch (DeploymentException e) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException ie) {
                break;
            }
        }
        catch (Exception e) {
            throw new RuntimeException(e);
        }

        client = null;
            latch = null;
            //  HERE... clean up 
    }
}
EN

回答 2

Stack Overflow用户

发布于 2014-01-03 08:17:53

client.connectToServer返回会话实例,当您调用Session.close()时,客户端运行时应该关闭(没有剩下的线程)。

您没有指定正在使用的Tyrus版本(我建议1.3.3,我们在这方面做了一些改进)。此外,您可能对我们的共享容器支持感兴趣,请参阅泰勒斯-275。您可以将它与线程池配置结合起来,并且应该能够更好地控制生成/运行的线程的数量。

我们总是在寻找新的用例,所以如果您认为在Tyrus中应该有更好的支持,可以在我们的JIRA上创建新的增强请求。

票数 1
EN

Stack Overflow用户

发布于 2014-03-05 08:18:48

我也有同样的行为。我使用了大量的线程和同步,并设法意外地获得了onOpen方法的ClientEndpoint阻塞,这导致握手超时。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19274265

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档