Java Thread Join () с интервалом сна, вызывающей проблемуJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Java Thread Join () с интервалом сна, вызывающей проблему

Сообщение Anonymous »

Я делал учебное пособие по методу параллельного программирования и метода Saw .join (), чтобы убедиться, что поток будет работать до завершения до продолжения остальной части кода. < /p>

Однако, когда я пытаюсь использовать 2 потока, чтобы увеличить и уменьшить переменную, как 100 раз (инициируемая ценность: 2000), конечный результат предполагает, что он показывает 2000, но он показывает, что меньше, чем 2000 или 2000 или 2000 года, только 2000 или меньше 2000 или 2000 года. Последовательно показывать 2000, когда я не понаправдуте Thread.sleep в main метод

public class Main {
public static void main(String[] args) {
SharedObj sharedObj = new SharedObj();
Thread thread1 = new Thread(new ThreadMinus(sharedObj));
Thread thread2 = new Thread(new ThreadPlus(sharedObj));
thread1.start();
// try {
// Thread.sleep(100);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
thread2.start();

try {
thread1.join();
thread2.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.out.println("number is: " + sharedObj.num);
System.out.println("increment count: " + sharedObj.countPos);
System.out.println("decrement count: " + sharedObj.countNeg);

}
}

class SharedObj {
public int num;
public int countPos = 0;
public int countNeg = 0;

public SharedObj() {
num = 2000;
}

public void change(int x) {
num += x;
if (x < 0) {
countNeg++;
} else {
countPos++;
}
System.out.println("number is: " + num + " with operation: " + x);
}
}

class ThreadMinus implements Runnable {
SharedObj sharedObj;

public ThreadMinus(SharedObj sharedObj) {
this.sharedObj = sharedObj;
}

@Override
public void run() {
for (int i = 1; i

Подробнее здесь: https://stackoverflow.com/questions/527 ... ng-problem
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»