Java线程会话的最佳实践

时间:2015-10-06 10:23:11

标签: java multithreading sockets server scalability

HelloOverflow上的@all, 我目前正在开发一个服务器客户端应用程序,它通过HTTPS进行通信,并执行一些必须在服务器上以及客户端上的单独线程中运行的任务。

我并不是关于客户端的线程效率的演唱会。

正常的服务器任务看起来像这样:

  1. HTTPS服务器接收登录equest。
  2. 打开一个longpolling线程进行通信。
  3. 服务器收到打开指令
  4. 服务器打开一个客户端套接字和一个要从中读取的线程。
  5. 服务器收到关闭套接字的消息。
  6. Clientsocket线程现在应该等待。
  7. -Besides:只要没有收到来自socketthread的任何数据,longpolling线程就应该wait()。

    因此,在大多数情况下,一个用户可以在服务器端使用多个套接字,因此一个会话包含:

    LongpollingThread&。1 --- 1>用户&。1 --- 0..5>插座

    我现在的问题是获得一些降级可扩展性的最佳做法是什么? 编写一个内部有while循环的永久Thread更好。 或者,编写在Threadpool上运行的任务并在一个I / O周期后死亡会更好。

    无法在网上找到一个好的答案。 也许这是具体的..

    提前致谢 Bladerox

1 个答案:

答案 0 :(得分:0)

我认为你应该使用某种servlet引擎或应用服务器。很多问题都会在那里得到解决。例如,使用异步servlet处理将帮助您在服务器组件中。

在客户端站点:您是否查看了java.nio中的多播内容?