Вообщем, хотелось бы реализовать такое: после того как простое число найдено, поток приостанавливает свою работу и продолжают(потоки) свою работу, только после того, как оба успешно произвели поиск.
class Search extends Thread
{ Scanner input = new Scanner(System.in);
int threadie;
static int a = 0;
static int b = 0;
public Search(int threadID)
{
threadie = threadID;
}
public void run()
{
System.out.println("Границы поиска?");
int n = Integer.parseInt(input.nextLine());
int c = 2 * n / 3;
for (int i = 0; i < n; i++)
{
if(threadie == 1){
if (i < c)
{
if ((Search.isPrime(i))) { a++; }
}
}
if(threadie == 2){
if (i >= c )
{
if ((Search.isPrime(i))) { b++; }
}}
}
if(threadie == 1) System.out.println("Поток №" + threadie + " содержит " + a + " простых чисел ");
if(threadie == 2) System.out.println("Поток №" + threadie + " содержит " + b + " простых чисел ");
}
static boolean isPrime(long n)
{
if (n <= 1) return false;
double limit = Math.sqrt(n);
for (long i = 2; i <= limit; i++)
{
if (n % i == 0) return false;
}
System.out.println("Простое число: "+n);
return true;
}
public static void main(String[] arg)
{
Thread th1 = new Search(1);
Thread th2 = new Search(2);
th1.start();
th2.start();
try {
Thread.sleep (1000);
th1.join(); }
catch (InterruptedException ie) { }
try { th2.join(); }
catch (InterruptedException ie) { }
System.out.println("\n Потоки 1 и 2 окончены");
int NumPrimes = a + b;
System.out.println(" Количество простых чисел: " + NumPrimes);
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Нужно создать свой круглый progressbar для таймера обратного отсчета в android-приложении
Пытаюсь передать данные по этому примеру и в результате приложение падает