CodeGym /Java курс /Модул 2: Java Core /присъединяване — изчакване края на нишка

присъединяване — изчакване края на нишка

Модул 2: Java Core
Ниво , Урок
На разположение

"Здравей, Амиго! Виждам, че правиш големи крачки в изучаването на нишките."

— В крайна сметка не беше толкова трудно.

Това е страхотно! Днес имате лесен урок, а темата е методът за присъединяване .

Представете си следната ситуация: основната нишка е създала дъщерна нишка, за да изпълни няHowва задача. Времето минава и сега основната нишка се нуждае от резултатите от работата, извършена от дъщерната нишка. Но дъщерната нишка все още не е приключила работата си. Какво трябва да прави основната нишка?

Добър въпрос. Какво трябва да прави основната нишка?

„Ето за Howво служи методът за присъединяване . Той ни позволява да накараме една нишка да чака, докато друга нишка завърши работата си:“

Код Описание
class Printer implements Runnable
{
private String name;
public Printer(String name)
{
this.name = name;
}
public void run()
{
System.out.println("I’m " + this.name);
}
}
Клас, който имплементира интерфейса Runnable.
public static void main(String[] args)
{
Printer printer1 = new Printer("Nick");
Thread thread1 = new Thread(printer1);
thread1.start();

thread1.join();
}
Основната нишка създава дъщерна нишка – thread1 .

След това го стартира чрез извикване на thread1 .start();

И след това изчаква да завърши – thread1.join();

Една нишка може да извика метода за присъединяване на обект Thread на втора нишка. В резултат на това първата нишка (която е извикала метода) спира работата си, докато втората нишка (чийто метод за присъединяване на обекта е бил извикан) не приключи.

Тук трябва да правим разлика между две неща: имаме нишка (отделна среда за изпълнение) и имаме обект Thread.

"Това е?"

— Да.

„Но защо трябва да създаваме нишка и след това веднага да чакаме да завърши?“

„Може да не е необходимо веднага. Може да е след известно време. След стартиране на първата дъщерна нишка, основната нишка може да присвои много повече задачи на други нишки (като ги създаде и извика метода за стартиране ). Тогава, когато няма останала работа, трябва да обработи резултатите от първата дъщерна нишка. Всеки път, когато трябва да изчакате друга нишка да приключи работа, трябва да извикате метода за присъединяване . "

"Схванах го."

Коментари
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION