java - 获取java中的 Activity 线程数

标签 java multithreading

我有一个类(扩展 Thread ),我正在其中运行多个线程。

这是类(class):

public class Abc extends Thread{
    private String key;
    public void run(){}
}

现在,我想根据key的值知道该类有多少个 Activity 线程。 .

例如。我在 10 个线程中将 key 的值设置为“X”,在 15 个线程中将 key 的值设置为“Y”。我想创建一个 map :

map<String, int> :: {"X"=10, "Y"=15}

我怎样才能做到这一点?

编辑:

这个Map<>将存储在Execute中类,它正在创建线程。与Abc无关.

最佳答案

您可以在任务开始时递增计数器,并在任务完成时递减计数器。

类似于

public void run() {
     AtomicInteger counter = counterMap.computeIfAbsent(key, k -> new AtomicInteger());
     counter.incrementAndGet();
     try {
         doRun();
     } finally {
         counter.getAndDecrement();
     }
 }

关于java - 获取java中的 Activity 线程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35430982/

相关文章:

c++ - 如何让两个线程通过指针交换数据?

c++ - std::list<std::future> 析构函数不阻塞

java - 输入重定向到 Java - 找不到或加载主类

Java 多态性/转换/方法

java - 如何在项目中找到不需要的jar

objective-c - 原子对于合成原语真的意味着什么吗?

java - 如何在java中转换时间数据?

java - 在JOOQ中使用PL/SQL函数

c# - 非阻塞(无锁)一次性初始化

php - 我们如何在不使用 pcntl_fork() 的情况下在 php 中执行多个进程?