Java 我想将TimerThread放入Timer的线程组中

Java 我想将TimerThread放入Timer的线程组中,java,Java,没有使用任何令人讨厌的反射。任何快速/简单的方法(不复制和粘贴计时器代码)?如果我尝试这样做,我会查看计时器的源代码读取并查看它是否有一个众所周知的名称,然后通过线程找到它。枚举 还有,为什么?我这样问是因为我从来没有发现threadgroup这么有用 如果没有给新线程一个明确的线程组,它将首先向SecurityManager请求目标线程组,然后返回到当前线程的线程组。因此,您可以从所需ThreadGroup中的线程创建计时器,或者使用所需ThreadGroup临时安装SecurityManag

没有使用任何令人讨厌的反射。任何快速/简单的方法(不复制和粘贴计时器代码)?

如果我尝试这样做,我会查看计时器的源代码读取并查看它是否有一个众所周知的名称,然后通过
线程找到它。枚举


还有,为什么?我这样问是因为我从来没有发现threadgroup这么有用

如果没有给新线程一个明确的线程组,它将首先向SecurityManager请求目标线程组,然后返回到当前线程的线程组。因此,您可以从所需ThreadGroup中的线程创建计时器,或者使用所需ThreadGroup临时安装SecurityManager(请注意,这将产生全局影响,因此这有点粗略)。

不要使用
计时器,请改为尝试。将对的调用与创建具有所需组的线程的自定义组合。当然,执行器和线程工厂具有更大的灵活性,但这最接近于计时器的工作方式(每个计时器一个线程)。

在Joshua Bloch的《高效Java》中,他建议永远不要使用线程组。我对组织很严格,这在调试时很有帮助,我希望能够对它们进行分组,而不必担心它们。在所讨论的应用程序中,所有的初始化(包括计时器)都在开始时。如果我将一个线程组传递给其他线程,哪个线程组优先?构建它时传入的SecurityManager或ThreadGroup?正如我在评论中所说的,我提到的规则只有在线程的构造函数中没有给出明确的ThreadGroup时才适用。我认为这是正确的方法,但我总是面临着“如果没有坏掉,就不要修复它”这样的阻力