问题描述:
假设java客户端程序通过Rserve调用一个R模型耗时n秒。客户端并发x个线程调用R模型,单个线程调用耗时大于n,是n的数倍,为什么?
解释:
R模型是CPU密集型的任务,执行R代码时,需要大量的CPU计算。单个线程执行时,
所有CPU资源都处理这一个任务,执行较快。当并发n个线程执行时,分到每个线程上面的CPU执行时间缩短,
导致单个任务执行时间变长。
假设java客户端程序通过Rserve调用一个R模型耗时n秒。客户端并发x个线程调用R模型,单个线程调用耗时大于n,是n的数倍,为什么?
解释:
R模型是CPU密集型的任务,执行R代码时,需要大量的CPU计算。单个线程执行时,
所有CPU资源都处理这一个任务,执行较快。当并发n个线程执行时,分到每个线程上面的CPU执行时间缩短,
导致单个任务执行时间变长。
总结:对于CPU密集型的任务,不适合通过并发缩短全部任务运行时间。