需求是实现 控制每个用户任务的同时执行数。
比如a用户提交了100个任务,配置只能同时执行10个任务,那么就同时执行10个任务,其余任务等待中;
b用户也提交了100个任务,配置只能同时执行50个,那么就同时执行50个任务,其余任务等待中;
有其他用户任务同理。
初步思路是每个用户对应一个队列 + 一个消费者线程去轮询,消费者线程判断当前用户正在执行的任务数量是否大于同时执行数,如果不大于就放到一个线程池执行任务。
但问题就是一个用户就有一个队列+一个消费者线程+一个执行任务的线程池,就怕很多人用的时候服务器创建的线程太多了扛不住。。
在此请教各位有无好办法。