私はスレッド私は新しい文字列を作成していJavaのマルチスレッド同期の問題?
public void run()
{
while(true)
{
try {
for (int i = 0; i < 100; i++) {
buf.append(hello + (myint++));
}
buf.append("\n");
adapter.setData(buf.toString());
buf = null;
buf = new StringBuffer();
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(TestThread.class.getName()).log(Level.SEVERE, null, ex);
}
}
を下回っているのrunメソッドを持っている
...それはあまりにもbasic..Please助けとなることがあります...私は同期の問題があると思います各実行中のデータおよびアダプタクラスsetDataメソッドに渡し..
アダプタクラスで私にsetDataはこのようなものです。..
public boolean setData(String sb){
str = sb;
if(str != null && !str.equalsIgnoreCase("")){
timer.scheduleAtFixedRate(new TimerTask() {
public void run() {
System.out.println("inside run.....");
System.out.println("str length:- "+str.length());
//do sth after this..
}
}
富栄最初の実行メソッドでbuf.toString()を使って新しい文字列を作成しようとしても、これを取得します。
私は何が間違っているのですか?
ありがとうございます。
お返事ありがとうございます。下に指し示すように最終的に助けられたstrを宣言します。私は内部クラスでそれを必要とします –
それは助けた「最終的な」ではありません!それはそれをローカル変数に変更しています。 –