Нужна ваша помощь, чтобы получить мои основы. Пожалуйста, обратите внимание на следующий фрагмент (из книги :))Обмен данными (уровень класса) между несколькими потоками
class Flooring extends Thread
{
final int MAX = 100000000;
int number;
volatile double d = 0;
public Flooring(int n, int priority)
{
number = n;
setPriority(priority);
start(); // start the thread
}
public void run()
{
for(int i = 1; i < MAX; i++)
d = d + (Math.PI + Math.E + Math.floor(i))/(double)i;
System.out.println(“Inside Thread” + number + “ : ” + d);
}
}
public class FloorThread
{
public static void main(String[] args)
{
for(int i = 1; i < 11; i++)
new Flooring(i, 11-i); // priority decreases
}
}
Здесь переменная d отмечена как изменчива. что означает, что мы хотим обеспечить видимость между потоками и, следовательно, это общая переменная. Я видел некоторые другие примеры, в которых у нас есть переменная в классе Thread, но не ожидается, что она будет делиться? Не должен ли каждый новый объект Flooring иметь свою собственную двойную переменную d?
Пожалуйста, помогите, поскольку я запутался в аналогичных других примерах, не отмечая такие же переменные, как изменчивые.
Заранее спасибо.
«где у нас есть переменная в классе Thread, но не ожидается?» : не получить эту часть, не могли бы вы исправить/уточнить, пожалуйста? –
Хмм, начало потока от конструктора кажется мне довольно хитростью. –
Привет valentin, Это опечатка ... для этого. это доля (не уверен). – Ouney