2016-07-20 3 views
0

Я не уверен, что я на правильном пути или нет. В моем приложении создается соединение jdbc, и некоторые транзакционные вызовы совершают транзакции. В том же потоке создается поток и снова вызывает тот же процесс для выполнения фиксации. Но последующая фиксация не дает правильных данных пользователя в столбцах ВОЗ. Столбцам ВОЗ необходимо принимать значения из сеанса пользователя. Я проверил, что если я не создаю поток и напрямую вызываю процесс, то столбцы ВОЗ корректно обновляются. При создании потоков возникает проблема. Приложение создается с использованием adf-модели. PLZ предлагает, как передать пользовательский контекст в поток.Как передать пользовательские данные в поток?

ответ

2

Если вы не публикуете код, сложно ответить на ваши вопросы. Но, основываясь на ваших формулировках, я думаю, что вам трудно передать некоторые переменные/данные в потоки. Самый простой и простой способ - использовать конструкторы. Когда вы создаете объект для вызова класса, реализующего/расширяющего класс потока, передайте данные в качестве параметров. Затем используйте конструктор в вызываемом классе, чтобы получить значения и использовать их по мере необходимости. Надеюсь, что это поможет и соответствует заданному вами вопросу.

0

вы можете передать данные в поток, используя класс с методом 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; 
    }  
} 

Перед началом набор нить данные в классе, то в методе запуска вы можете получить доступ к нему

0

Вы можете использовать ThreadLocal поддерживать некоторый контекст, связанный с текущим потоком, Вы можете получить более подробную информацию о Usage of ThreadLoacal

Смежные вопросы