首页 > 请问如何实现线程的重复使用,循环使用,循环执行任务

请问如何实现线程的重复使用,循环使用,循环执行任务

我有一堆任务,把这些任务提交到线程池的任务队列中,如果队列满了就先不提交。这时线程池中的线程从任务队列中提取任务并开始执行(假设共有5个固定线程),一个线程执行完任务后继续从任务队列中领取任务并执行,任务队列中少了一个任务,这时我们再向任务队列中提交一个任务


    class MyTask implements Runnable{
        @Override
        public void run() {
            // TODO Auto-generated method stub
            //执行业务逻辑
        }
        
    }
    
    public class MyThread extends Thread {
        long minPrime;
        private boolean shouldStopFlag=false;
        private long checkIntervalTime;
        public MyThread(long checkIntervalTimeIn){
                this.checkIntervalTime=checkIntervalTimeIn;
        }
        public void run() {
                while(!shouldStopFlag){
                    //如果获取不到.线程等待指定的时间间隔后,再去获取执行任务
                    Runnable nexRunnable=getNextTask();
                    if(nexRunnable!=null){
                        nexRunnable.run();
                    }else{
                        try {
                            Thread.sleep(checkIntervalTime);
                        } catch (InterruptedException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                    
                    
            }
        }
        
        private Runnable getNextTask(){
                //获取下一个需要至执行的任务,可以队列等数据结合中获取
                return new MyTask();
        }
    }

本来就是被复用的,被线程池管理的,自己不用控制。

【热门文章】
【热门文章】