编程专栏
2012-02-15 13:36
采纳率: 0%
浏览 214
已采纳

java服务器端解决并发的问题

应用场景:实现一个类似网盘的项目,前端页面采用JSF组织,后端bean不是直接操作本地文件,而是需要通过socket走自定义协议与集群服务器进行通信,获取用户的相关信息之后展现在客户端页面中。但是考虑到前端的多并发操作,比如同时有多个用户登录,有的用户在上传文件,有的用户在下载文件,有的用户在做在线编辑等等,我的后端bean跟集群服务器的通信效率应该如果解决更高效呢?

目前我考虑到解决方案是使用线程池的方式来解决前端并发问题,但是因为要涉及到socket操作,这样搞起来是不是开销会很大啊?特别是高并发的时候?

而且,采用线程池方案的时候,线程池的大小将会受到JVM当前所能分配的线程数的影响。

如果不采用线程池的方式解决,有没有其他一些更好的解决方案呢?

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

2条回答 默认 最新

  • qiemengdao 2012-02-16 12:13
    最佳回答

    socket建立连接-处理一个任务-立即销毁这样的过程肯定开销太大了。我上面说的是这样一个过程:
    Worker:
    (1)与集群服务器建立连接;
    (2)监听(等待)任务队列,如果有任务产生,进入(4),如果没有进入(3);
    (3)转入(2);
    (4)获取任务与服务器进行交互处理并获取返回值返回调用线程;转(2);

    当然,这个过程省略了一些生命周期控制的跳转,比如在什么时候关闭连接等。

    评论
    解决 无用
    打赏 举报
查看更多回答(1条)

相关推荐 更多相似问题