私はリストを持つクラスを書いています。そして、 の run メソッドからリストをインスタンス化していますRunnable
。として:
public void sendEmailToLegalUsers() {
Log.info("JYM====================================");
try {
new Runnable() {
public void run() {
userCns = new ArrayList<String>();
recipients = new ArrayList<String>();
///other codes
}
};
} catch (Exception e) {
Log.info("Error occurred in LDAPSendMail: "+ e.getMessage());
}
Log.info("END====================================");
}
sendEmailToLegalUsers メソッドが呼び出されるたびに、新しいスレッドが作成されます。今、私はリストのメモリスコープがクラスレベルにバインドされているのだろうかと思っています(クラスレベルにバインドされていて、このメソッドが2回呼び出された場合、スレッド1によって作成されたリストはどうなりますか?スレッド 2) またはスレッドが独自のスコープで実行される場合、リストはスレッドごとに異なるスコープになります。2 つまたは複数のスレッド間でリスト データを混同する可能性はありますか?