2013-02-05 49 views
1

我想知道在AspectJ中是否有方法来为每个线程声明一个方面,以及是否有方法来为每个线程团队声明一个方面?每个线程的看点和线程

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

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

+1

认为AspectJ没有这种能力。顺便说一下,你可以在Aspect中使用ThreadLocal来创建每个线程的状态。 – Taky

+0

@Taky感谢回答,使用ThreadLocal的不错的解决方法。是的,我怕的AspectJ的确没有,至少我没发现任何东西这个能力。 – dreamcrash

回答

1

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

如果您需要创建线程唯一状态使用ThreadLocal。 如果您需要创建ThreadGroup唯一状态,则应该执行一些手动工作。看看它是如何实现的:ThreadGroup local variables。另外请注意在Java中你cannot determine parent thread,所以你需要使用ThreadGroup。

而当你想使用ThreadLocal的状态和方面,想想你的程序设计每一次,是不是这样的吗?

+0

感谢您的回答,非常有帮助。 – dreamcrash

相关问题