私はJavaスレッドの動作を理解するのに苦労しています。Javaスレッド - スレッドのローカル変数
N個のスレッドを持つプログラムがあるとします。各スレッドは、文字列の配列の異なる部分で同じ命令を実行します。実行可能なインタフェースを持つクラスを通してスレッドを呼び出します。この例の目的のために、それはこのようなものであるとしましょう:
run() {
while (startStop = loopGetRange() != null) {
countLetters(startStop.start,startStop.stop);
/* start is the beginning cell in the array where the process starts
and stop is the ending cell in the array where the process stops */
}
}
最後countLettersは、次のように単純な方法である:
private void countLeters (int start, int stop) {
for (int y = start; <= stop; y++) {
String theWord = globalArray[y];
int z = theWord.length;
System.out.println("For word "+theWord+" there are "+z+" characters");
}
}
ここに私の質問です:「theWord」のような変数であります「Z」はスレッドにローカルであるか、またはスレッド全体で共有されているため、スレッドが衝突する可能性があります。後者の場合、これらの変数をどのように保護するのが最善か。
困ったことに助けてくれてありがとう。
エリオット
これは非常に明確です。ご説明をいただき、ありがとうございます。 – Elliott