такое задание - есть какой-то массив и число в этом массиве, нужно создать два потока, первый из которых рассматривает первую часть массива, второй -вторую, И в зависимости от того,где было найдено число - выдается результат Пример Array { 2, 7, 3, 9, 23 } число : 7 • Thread 1: найдет • Thread 2: не найдет
вот,что я написал
public class Aufgabe1 implements Runnable {
private int [] arr;
private int von,bis,zahl;
private boolean isgefunden = false;
public Aufgabe1(int[] arr, int von,int bis,int zahl) {
this.arr = arr;
this.von = von;
this.bis = bis;
this.zahl = zahl;
}
@Override
public void run() {
for (int i = von; i < bis; i++) {
if (arr[i] == zahl){
isgefunden = true;
}
}
}
public static void main(String[] args) {
int arr [] = new int[]{3, 2, 4, 5, 86,55,26,35,15,28};
Aufgabe1 aufgabe1 = new Aufgabe1(arr,0,arr.length/2,4);
Thread thread1 = new Thread(aufgabe1);
thread1.start();
Aufgabe1 aufgabe2 = new Aufgabe1(arr,arr.length/2+1,arr.length,4);
Thread thread2 = new Thread(aufgabe2);
thread2.start();
}
}
теперь не пойму,как записать, найден/ненайдет, т е использовать isgefunden
После цикла в методе run()
напишите:
System.out.println("Поток " + Thread.currentThread().getName() + (isgefunden ? " нашёл число." : " не нашёл число."));
Также можно и через if
:
if(isgefunden)
System.out.println("Поток" ну и так далее);
else
System.out.println(и так далее);
public class Aufgabe1 implements Runnable {
private String name;
private int [] arr;
private int von,bis,zahl;
private boolean isgefunden = false;
public Aufgabe1(String name, int[] arr, int von,int bis,int zahl) {
this.name = name;
this.arr = arr;
this.von = von;
this.bis = bis;
this.zahl = zahl;
}
@Override
public void run() {
for (int i = von; i < bis; i++) {
if (arr[i] == zahl){
isgefunden = true;
System.out.println(name + " нашел число " + zahl);
return;
}
}
}
public static void main(String[] args) {
int arr [] = new int[]{3, 2, 4, 5, 86,55,26,35,15,28};
Aufgabe1 aufgabe1 = new Aufgabe1("Thread-1", arr,0,arr.length/2,4);
Thread thread1 = new Thread(aufgabe1);
thread1.start();
Aufgabe1 aufgabe2 = new Aufgabe1("Thread-2", arr,arr.length/2+1,arr.length,4);
Thread thread2 = new Thread(aufgabe2);
thread2.start();
}
}
Например, вот так
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Недавно столкнулся с такой проблемой, как невозможность последовательного выполнения большого количества команд в цикле for в комбинации...
Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он вписывался в тематику Stack Overflow на русском