编程专栏 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条)

报告相同问题?

悬赏问题

  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器