沉默王二 2014-12-31 02:56 采纳率: 0%
浏览 6381

使用多个线程池还是一个线程池

最近在技术理论上遇到一个问题,不知道怎么解决。
问题描述:我们交易平台有4个商品(A、B、C、D)需要进行现在交易,交易的核心方法dealorder是
一个加了锁和事务的方法,而且该类是针对每一个商品的,即最多同时可以执行4个dealOrder方法,即每个商品执行一个该方法。

 @Transactional
    public synchronized Message dealOrder()

CPU核心数是固定的,假如为6核心,目前就存在一个问题,
情况1:假如说创建一个线程池,过来了大量的A商品请求,超过6个就被放进了队列中,再过来B、C、D商品的请求,也无法再进行处理。
情况2:假如说创建6个线程池,每个商品一个线程池,这时候,理论上ABCD四个商品就会在各自的线程池中进行处理,这样就不会发上1情况的其他商品等待资源释放的问题,但是真实情况下,6个线程池会去抢占一个CPU获得处理还是自动获取6个CPU核心数进行处理.
我现在没有理论上的经验,通过实践似乎可以看出来2情况要理想,但是真实情况下是否如此,真心需要理论上给出结论。

  • 写回答

8条回答 默认 最新

  • 沉默王二 Java领域优质创作者 2014-12-31 04:03
    关注

    非常感谢你的回答,我一直没有弄清楚CPU核心数和4个线程池(每个里面一个线程),和一个线程池(里面4个线程)之间的关系,只是情况2解决了
    大量A商品(A1A2A3A4A5A6、B1B2)这中请求的时候,B1不需要等待A1A2处理完后再进入线程池,而会直接进入到B商品的线程池进行处理,但是
    我一直怀疑真实情况下,CPU在处理1个线程池(多个线程),多个线程池(1个线程)之间的内存分配和CPU调度之间的关系,非常迫切希望您能多聊聊一些知识。

    评论

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算