Вообщем, хотелось бы реализовать такое: после того как простое число найдено, поток приостанавливает свою работу и продолжают(потоки) свою работу, только после того, как оба успешно произвели поиск.
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);
}
}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники