Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ScheduledThreadPoolExecutor与一个计划任务(Runnable)保持报告回作业计数器+;1一直_Java_Multithreading_Concurrency - Fatal编程技术网

Java ScheduledThreadPoolExecutor与一个计划任务(Runnable)保持报告回作业计数器+;1一直

Java ScheduledThreadPoolExecutor与一个计划任务(Runnable)保持报告回作业计数器+;1一直,java,multithreading,concurrency,Java,Multithreading,Concurrency,当我打印s.getTaskCount()时,我得到了一个不断增加的任务计数(比如1,2,3,4,5,6,7…)。我不明白为什么 public class MyTask implements Runnable { public void run() { System.out.println("whatever...."); } } ScheduledThreadPoolExecutor s = new ScheduledThreadPoolExecuto

当我打印s.getTaskCount()时,我得到了一个不断增加的任务计数(比如1,2,3,4,5,6,7…)。我不明白为什么

public class MyTask implements Runnable
{
    public void run()
    {
       System.out.println("whatever....");
    }
 }


ScheduledThreadPoolExecutor s = new ScheduledThreadPoolExecutor(3);
s.scheduleAtFixedRate(new MyTask(), 0, 10, TimeUnit.SECONDS);


while(1>0)
{
    try
    {
        System.out.println("TASK COUNT: "+s.getTaskCount());
        Thread.sleep(60000);
    }
    catch(InterruptedException e)
    {
        System.out.println(e);
    }
}

ScheduledThreadPoolExecutor.getTaskCount()在文档中的状态为:


返回近似总数 已计划的任务数 执行。因为任务的状态 线程可能会动态变化 在计算过程中,返回的值 只是一个近似值,但是 这一点在所有国家都不会减少 连续呼叫

因此,getTaskCount()返回池已执行的任务总数


我不确定您的目标是什么,但如果您想要当前正在执行的任务数,请尝试getActiveCount()。

返回已计划执行的任务的大致总数。我正在尝试获取我计划的所有任务的活动计数,或者更确切地说,查看还有多少任务仍在执行。不,它将随着时间的推移继续增加。它是曾经进入队列的任务总数。getActiveCount()将返回当前正在执行的数字。您也可以使用getQueue()直接监视任务队列。我正在执行以下操作: