Я не уверен, что нахожусь на правильном пути. В моем приложении создается соединение jdbc, и некоторые вызовы процесса фиксируются по этой транзакции. В том же потоке создается поток, который снова вызывает тот же процесс для выполнения фиксации. Но более поздняя фиксация не фиксирует правильные пользовательские данные в столбцах ВОЗ. Столбцы ВОЗ должны принимать значения из пользовательского сеанса. Я проверил, что если я не создаю поток и не вызываю процесс напрямую, столбцы ВОЗ обновляются правильно. При создании потока возникает проблема. Приложение создано с использованием модели adf. пожалуйста, подскажите, как передать контекст пользователя в поток.
Как передать пользовательские данные в поток?
Ответы (3)
Пока вы не разместите код, вам будет сложно ответить на ваши вопросы. Но, судя по вашим формулировкам, я думаю, что у вас возникли трудности с передачей некоторых переменных / данных в потоки. Самый простой и простой способ - использовать конструкторы. Когда вы создаете объект для вызова класса, реализующего / расширяющего класс потока, передайте данные как параметры. Затем используйте конструктор в вызываемом классе, чтобы получить значения и использовать их по мере необходимости. Я надеюсь, что это помогло и соответствовало заданному вами вопросу.
вы можете передать данные в поток, используя класс с методами получения и установки, установить все данные, создав объект перед запуском потока и используя метод получения, вы можете получить их в потоке ..!
public Class NormalClass
{
int data = 0;
public void setData(int a)
{
this.a = a;
}
public int getData(int a)
{
return this.a;
}
}
Перед запуском потока установите данные в классе, затем в методе запуска вы можете получить к ним доступ
Вы можете использовать ThreadLocal для поддержки некоторого контекста, связанного с текущим потоком. Вы можете получить дополнительную информацию на Использование ThreadLoacal