每线程的面积&每个线程组的方面

时间:2013-02-05 09:23:56

标签: java aspectj

我想知道AspectJ中是否有一种方法可以为每个线程声明一个方面,还有一种方法可以为每个线程组声明一个方面吗?

通过线程团队,我指的是这个例子:

给定线程'X'创建'N'个新线程,然后'X'是该团队的主人,如果该团队中的给定线程'Y'也由他们自己创建一个新团队,'Y'将成为这个新团队的主人。所以我想知道我是否可以通过线程'X'向团队生成一个方面'A',并为团队'Y'声明方面'A'的不同“实例”。

1 个答案:

答案 0 :(得分:1)

AspectJ仅操纵字节代码。因此,在生成Aspects钩子时,它无法确定运行时信息(您知道调用代码的线程是运行时信息)。

如果您需要创建线程唯一状态,请使用ThreadLocal。 如果需要创建ThreadGroup唯一状态,则应该进行一些手动操作。了解如何实施:ThreadGroup local variables。还要注意Java cannot determine parent thread,所以你需要使用ThreadGroup。

每当你想使用ThreadLocal状态和Aspects时,想想你的程序设计,对你来说是正确的吗?