[Java-упражнения] Вывод Java-программ | Набор 16 (потоки)

Java задняя часть опрос
[Java-упражнения] Вывод Java-программ | Набор 16 (потоки)

Это 20-й день моего участия в августовском испытании обновлений. Узнайте подробности события:Испытание августовского обновления

Сложный уровень:Средняя

программа

программа один

1) Что выводит следующая программа?

public class Test implements Runnable
{
	public void run()
	{
		System.out.printf("HY ");
		System.out.printf("haiyong ");
	}
	public static void main(String[] args)
	{
		Test obj = new Test();
		Thread thread = new Thread(obj);
		
		thread.start();
		System.out.printf("haiyong ");
		try
		{
			thread.join();
		}
		catch (InterruptedException e)
		{
			e.printStackTrace();
		}
		System.out.println("for ");
	}
}

a) HY Haiyong Haiyong for
b) Haiyong HY Haiyong for
в) а или б
г) а и б вместе

Нажмите здесь, чтобы перейти к ответу


программа вторая

2) Что выводит следующая программа?

public class Test implements Runnable
{
	public void run()
	{
		System.out.printf("HY ");
	}
	public static void main(String[] args) throws InterruptedException
	{
		Thread thread1 = new Thread(new Test());
		thread1.start();
		thread1.start();
		System.out.println(thread1.getState());
	}
}

a) HY HY TERMINATED
b) HY TERMINATED
в) ошибка компиляции
г) ошибки времени выполнения

Нажмите здесь, чтобы перейти к ответу


Процедура третья

3) Что выводит следующая программа?

public class Test extends Thread implements Runnable
{
	public void run()
	{
		System.out.printf("HY ");
	}
	public static void main(String[] args) throws InterruptedException
	{
		Test obj = new Test();
		obj.run();
		obj.start();
	}
}

а) ошибки во время выполнения
б) ошибка компиляции
c) HY HY
г) ничего из вышеперечисленного

Нажмите здесь, чтобы перейти к ответу


программа четыре

4) Что выводит следующая программа?

class myThread implements Runnable
{
	public void run()
	{
		Test.obj.notify();
	}
}

public class Test implements Runnable
{
	public static Test obj;
	private int data;
	public Test()
	{
		data = 10;
	}
	public void run()
	{
		obj = new Test();
		obj.wait();
		obj.data += 20;
		
		System.out.println(obj.data);
	}
	public static void main(String[] args) throws InterruptedException
	{
		Thread thread1 = new Thread(new Test());
		Thread thread2 = new Thread(new myThread());
		
		thread1.start();
		thread2.start();
	
		System.out.printf(" HY - ");
	}
}

а) 30 ХГ –
б) ГИ – 30
в) ХИ –
г) ошибка компиляции

Нажмите здесь, чтобы перейти к ответу


Процедура пятая

5) Что выводит следующая программа?

import java.util.concurrent.*;

public class Test implements Runnable
{
	public static CyclicBarrier barrier = new CyclicBarrier(3);
	public void run()
	{
		System.out.printf(" HY ");
		try
		{
			barrier.await();
		} catch (InterruptedException | BrokenBarrierException e)
		{
			e.printStackTrace();
		}
	}
	public static void main(String[] args) throws InterruptedException
	{
		Thread thread1 = new Thread(new Test());
		Thread thread2 = new Thread(new Test());
		
		thread1.start();
		thread2.start();
		System.out.printf(" haiyong ");
		try
		{
			barrier.await();
		} catch (InterruptedException | BrokenBarrierException e)
		{
			e.printStackTrace();
		}
		System.out.printf(" End ");
		
	}
}

a) haiyong HY HY End
b) HY haiyong HY End
c) HY HY haiyong End
г) все вышеперечисленное

Нажмите здесь, чтобы перейти к ответу


Вторая половина статьи - вывод и анализ программы

f5366b0c39333abddb209c05bfb329f4.jpg


вывод и разбор

вывод программы

Отвечать:

(c)

иллюстрировать:

Из оператора «thread.start ()» у нас есть два потока: основной поток и поток «поток». Таким образом, либо выводится «HY», либо печатается «haiyong», в зависимости от того, какой поток планирует планировщик потоков. Для (а) родительский поток после вызова метода start() приостанавливается, планировщик потоков планирует дочерний поток, и дочерний поток завершает свое выполнение. После этого родительский поток назначается. Для (b) родительский поток вызывает метод start(), но продолжает и печатает на консоли. При вызове метода join() родительский поток должен дождаться завершения выполнения своего дочернего потока. Планировщик потоков планирует дочерние потоки, в то время как родительский поток ожидает завершения дочернего потока.


Программа два выхода

Отвечать:

(d)

иллюстрировать:

Вызов метода start() для потока переводит поток в состояние RUNNABLE. Но вызов метода start() для уже запущенного потока вызывает исключение IllegalThreadStateException, поскольку поток уже находится в состоянии RUNNABLE.


Программа три выхода

Отвечать:

(c)

иллюстрировать:

Класс Test расширяет класс Thread, который уже реализует метод start(). Следовательно, вызов start() для объекта, расширяющего класс Thread, вызывает метод run(), определенный в программе.


Запрограммируйте четыре ответа

отвечать :

(d)

иллюстрировать:

Объект должен получить блокировку перед вызовом метода wait(). Точно так же метод wait() генерирует исключение Checked (InterruptedException), которое мы должны обернуть в блок try-catch или бросить.


Программа пять ответов

отвечать :

(d)

проиллюстрировать:

Для (а) родительский поток выполняется до тех пор, пока не будет достигнут барьер. Затем планируется выполнение дочернего потока. Для (b) планировщик потоков thread1. Как только барьер достигнут, родительский поток планируется. Как только родительский поток достигает барьера, назначается поток 2. Для (c) запланированы оба дочерних потока. Наконец, когда каждый дочерний поток достигает барьера, назначается родительский поток.


Это все для этой статьи

Статьи по Теме:

[Java-упражнения] Вывод Java-программ | Первый набор (включая синтаксический анализ)
[Вопросы по практике Java] Вывод программ Java | Второй набор (включая синтаксический анализ)
[Java-упражнения] Вывод Java-программ | Третий набор (включая синтаксический анализ)
[Вопросы по практике Java] Вывод Java-программ | Четвертый набор (включая анализ)
[Java-упражнения] Вывод Java-программ | Пятый набор (включая анализ)
[Java-упражнения] Вывод Java-программ | Шестой набор (включая синтаксический анализ)
[Java-упражнения] Вывод Java-программ | Набор 7 (включая синтаксический анализ)
[Вопросы по практике Java] Вывод Java-программ | Восьмой набор (включая анализ)
[Java-упражнения] Вывод Java-программ | Девятый набор (включая синтаксический анализ)
[Java-упражнения] Вывод Java-программ | Набор 10 (сборка мусора)
[Java-упражнения] Вывод Java-программ | Набор 11 (включая синтаксический анализ)
[Java-упражнения] Вывод Java-программ | Набор 12 (включая синтаксический анализ)
[Упражнения на Java] Вывод программ на Java | Тринадцатый набор (сборник)
[Java-упражнения] Вывод Java-программ | Набор 14 (Конструктор)
[Java-упражнения] Вывод Java-программ | Набор 15 (внутренние классы)

Я давно веду блог о технологиях, и это одна из моих технических статей/руководств. Надеюсь, вам это понравится! Вот краткое изложение всех моих оригинальных и исходных кодов работ:GitHub, и это блог, который я недавно создал:haiyong.site,контента в ней не так много,есть какие-то HTML игры,если интересно можете попробовать.Вы можете сами скопировать исходники по F12,или спросите у меня напрямую.

Если вы действительно узнали что-то новое из этой статьи, ставьте лайк, добавляйте в закладки и делитесь с друзьями. 🤗Наконец, не забудьте поставить ❤ или 📑 в поддержку.