【问题标题】:How to pass user data to a thread?如何将用户数据传递给线程?
【发布时间】:2016-11-23 12:58:41
【问题描述】:
我不确定我是否走在正确的轨道上。在我的应用程序中,创建了 jdbc 连接,并通过该事务提交了一些进程调用。在同一个流程中,创建一个线程并再次调用同一个进程来执行提交。但是后来的提交没有在 WHO 列中提交正确的用户数据。 WHO 列需要从用户会话中获取其值。我已经检查过,如果我不创建线程并直接调用该过程,那么 WHO 列正在正确更新。在创建线程时,出现问题。应用程序是使用 adf 模型创建的。请建议如何将用户上下文传递给线程。
【问题讨论】:
标签:
java
database
oracle-adf
java-threads
【解决方案1】:
除非您发布代码,否则很难回答您的问题。但根据你的措辞,我认为你很难将一些变量/数据传递给线程。最简单最简单的方法是使用构造函数。当您创建一个对象来调用实现/扩展线程类的类时,将数据作为参数传递。然后在被调用的类中使用构造函数来获取值并根据需要使用它们。我希望这会有所帮助,并且符合您提出的问题。
【解决方案2】:
您可以使用具有 getter 和 setter 方法的类将数据传递给线程,通过在启动线程之前创建对象来设置所有数据,并使用 getter 方法可以在线程中获取它..!
public Class NormalClass
{
int data = 0;
public void setData(int a)
{
this.a = a;
}
public int getData(int a)
{
return this.a;
}
}
在类中启动线程集数据之前,在run方法中可以访问它