目前我正在开发一个在 16 个线程上并行运行相同进程(在本例中具有不同输入参数的 TaskInformation)的应用程序。我想创建一个方面,从中获取参数和值并将它们存储在我将在方面创建的对象中。
我的问题是这个对象是为每个线程独立创建的,我可以以某种方式调用该对象的确切实例,以便我可以为每个线程存储正确的值。
如果可能的话,我会避免使用 threadLocal,因为这是我目前在没有方面使用的东西,我希望如果可能的话我可以避免它。
感谢您提前提供帮助!
我正在使用 threadLocal,我想重构它。
编辑: 我们有一个 Process 类,在其中查看 process 方法,该方法在多个线程中同时运行。我想用每个线程的信息填充 LoggingObject,并在最后将它们记录为整个处理的摘要。
示例:
public aspect MyAspect {
private final LoggingObject log = new LoggingObject()
pointcut processMethodExecution(TaskInformation taskInfo):
execution(TaskStatus Processor.process(TaskInformation)) && args(taskInfo);
after(TaskInformation taskInfo): processMethodExecution(taskInfo) {
logger.info("Processing task with ID: " + taskInfo.getTaskId());
log.setID(taskInfo.getTaskId())
}
}