gpt4 book ai didi

Java 多线程 - 监视多个线程 Activity 的最佳方法是什么?

转载 作者:行者123 更新时间:2023-11-30 05:59:48 27 4
gpt4 key购买 nike

我有许多线程正在执行长时间运行的任务。这些线程本身具有子线程,可以进一步分割工作。对我来说跟踪以下内容的最佳方式是什么:

  • 我的进程总共创建了多少个线程
  • 当前每个线程的状态是什么
  • 每个线程当前已到达进程的哪一部分

我想以尽可能高效的方式做到这一点,一旦线程完成,我不希望任何对它们的引用悬而未决,因为我需要尽早释放内存。

有什么建议吗?

最佳答案

不要从线程的角度来思考,线程是操作系统对象,不携带任何应用程序语义,而应该从任务的角度来思考。线程无法知道它已完成 50%,但任务可以。查看 java.util.concurrent 中用于根据执行器和可调用对象管理任务的工具。

在大多数情况下,您使用 Java(即非嵌入式系统)时,您不应该关心您的进程创建的线程数量多于(或少于)它创建的对象数量 - 您不希望耗尽,但如果您使用高级语言显式管理操作系统资源,您可能会在错误的抽象级别上工作。

对于中间反馈,创建一个进度监听器接口(interface),其中包含一个用于通知监听器任务到达位置的方法,在创建时将其传递给任务,并在任务期间当进度发生变化时调用它。确保接口(interface)的任何实现都是线程安全的。

关于Java 多线程 - 监视多个线程 Activity 的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2437842/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com