icepeer 2009-05-03 01:04
浏览 151
已采纳

如何配置java实例, 线程与进程?

最近有个项目,采用的架构如下:
1) java实例进程
2) java实例进程下起了很多并发的线程。
3) 每个线程会再起一个worker进程,线程与worker进程之间通过管道通信。
4) client会与线程建立连接,然后发送请求,worker进程具体干活,然后通过线程交易应答返回给client.

系统有40CPU. 内存也比较大。

我的问题是:
如果并发的client比较多, 如有500甚至3000个常连的并发连接时,应如何来配置比较好。
是用一个java实例,起多个thread
还是可以起多个java实例进程,每个再起一些thread. 这样可以将thread分到多个java进程中。

之所以想这样做,是因为害怕一个进程下管理这么多个线程,会不会超成管理开销,而且一个进程出问题,影响整个服务。如果一个进程下挂3000个线程,可行吗? 一个进程下,挂多少个线程是比较好的?

由于没有java方面的经验,所以在此请教此方面的专家,能提供一些帮助。

谢谢!

  • 写回答

1条回答 默认 最新

  • jolestar 2009-05-03 10:31
    关注

    起多个实例就是起多个jvm.
    你的内存比较大,可以起多个jvm,不然一个jvm分配内存太多的话,虚拟机的垃圾回收会比较慢。
    一个进程下起多个线程是没问题的,但最好用线程池管理比较好。
    java.util.concurrent包下有Executor接口, 有多种线程调度池的实现。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 ats2837 spi2从机的代码
  • ¥200 wsl2 vllm qwen1.5部署问题
  • ¥100 有偿求数字经济对经贸的影响机制的一个数学模型,弄不出来已经快要碎掉了
  • ¥15 数学建模数学建模需要
  • ¥15 已知许多点位,想通过高斯分布来随机选择固定数量的点位怎么改
  • ¥20 nao机器人语音识别问题
  • ¥15 怎么生成确定数目的泊松点过程
  • ¥15 layui数据表格多次重载的数据覆盖问题
  • ¥15 python点云生成mesh精度不够怎么办
  • ¥15 QT C++ 鼠标键盘通信