编程专栏 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 stm32流水灯+呼吸灯+外部中断按键
  • ¥15 将二维数组,按照假设的规定,如0/1/0 == "4",把对应列位置写成一个字符并打印输出该字符
  • ¥15 NX MCD仿真与博途通讯不了啥情况
  • ¥15 win11家庭中文版安装docker遇到Hyper-V启用失败解决办法整理
  • ¥15 gradio的web端页面格式不对的问题
  • ¥15 求大家看看Nonce如何配置
  • ¥15 Matlab怎么求解含参的二重积分?
  • ¥15 苹果手机突然连不上wifi了?
  • ¥15 cgictest.cgi文件无法访问
  • ¥20 删除和修改功能无法调用