Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Многопоточность Джава помогите с кодом

Евгений Огурцов Знаток (265), на голосовании 1 год назад
Помогите пожалуйста нужно сделать программу у которой будет 2 потока не включая main. один поток должен прибавлять к числу а другой отнимать вот код который получился.

класс Thread1.java

public class Thread1 extends Thread{
public static long i = 0;

@Override
public void run(){

while(true){
i++;
System.out.println(i++);

try {
Thread.sleep(1000);
} catch (InterruptedException e) {
//throw new RuntimeException(e);
}

}}
}

Thread2.java

public class Thread2 extends Thread {
public static long i = Thread1.i;

@Override
public void run() {

while (true){
i--;
System.out.println(i);

try {
Thread.sleep(1000);
} catch (InterruptedException e) {
//throw new RuntimeException(e);
}

}}
}


main


public class Main {
public static void main(String[] args) {

Thread1 thread1 = new Thread1();
Thread2 thread2 = new Thread2();

thread1.start();
thread2.start();

}
}
Голосование за лучший ответ
pincigerl Мудрец (16196) 1 год назад
Конечно, вот обновленная версия кода:
   
Tread1 Thread1 Extens {
общественный статический летучий длинный i = 0;

@Override
public void run () {
while (true) {
i ++;
System.out.println (i);

пытаться {
Thread.sleep (1000);
} catch (прерванная экспрессия e) {
// бросить новое runtimeexception (e);
}
}
}
}

Class Thread2 Extends Thread {
общественный статический летучий длинный i = thread1.i;

@Override
public void run () {
while (true) {
я--;
System.out.println (i);

пытаться {
Thread.sleep (1000);
} catch (прерванная экспрессия e) {
// бросить новое runtimeexception (e);
}
}
}
}

класс Main {
public static void main (string [] args) {
Thread1 Thread1 = New Thread1 ();
Thread2 Thread2 = new Thread2 ();

Thread1.start ();
Thread2.start ();
}
}
В исходном коде было несколько синтаксисов и орфографических ошибок. Я исправил их, а также добавил ключевое слово volatile 'к общей переменной i', чтобы убедиться, что изменения, внесенные одним потоком, видны другой.
Евгений ОгурцовЗнаток (265) 1 год назад
огромное спасибо
pincigerl Мудрец (16196) Евгений Огурцов, пожалуйста
Похожие вопросы