Гайд Как работать с потоками в Java

Начинающий
Статус
Оффлайн
Регистрация
11 Июл 2024
Сообщения
160
Реакции[?]
3
Поинты[?]
3K

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

Как создавать потоки:
Можно создать поток, расширив класс Thread или реализовав интерфейс Runnable. Вот как это делается:

С помощью Thread:

Код:
 class MyThread extends Thread { public void run() { System.out.println("Это поток!"); } }

public class Main { public static void main(String[] args) { MyThread thread = new MyThread(); thread.start(); } }
С помощью Runnable:

Код:
 class MyRunnable implements Runnable { public void run() { System.out.println("Это Runnable поток!"); } }

public class Main { public static void main(String[] args) { Thread thread = new Thread(new MyRunnable()); thread.start(); } }
Управление потоками:
Можно управлять состоянием потоков с помощью методов join() и sleep().

Пример с join():

Код:
 public class Main { public static void main(String[] args) throws InterruptedException { Thread thread = new Thread(() -> { System.out.println("Поток работает!"); }); thread.start(); thread.join(); // Ждем, пока поток завершится System.out.println("Поток завершен!"); } }
Использование потоков с ExecutorService:
Для более сложного управления потоками можно использовать ExecutorService. Это позволяет эффективно управлять пулом потоков.

Код:
 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;

public class Main { public static void main(String[] args) { ExecutorService executor = Executors.newFixedThreadPool(3); for (int i = 0; i < 5; i++) { final int taskId = i; executor.submit(() -> { System.out.println("Задача " + taskId + " выполняется."); }); } executor.shutdown(); } }
 
Начинающий
Статус
Оффлайн
Регистрация
20 Апр 2021
Сообщения
1,229
Реакции[?]
26
Поинты[?]
38K
Как создавать потоки:
Можно создать поток, расширив класс Thread или реализовав интерфейс Runnable. Вот как это делается:

С помощью Thread:

Код:
 class MyThread extends Thread { public void run() { System.out.println("Это поток!"); } }

public class Main { public static void main(String[] args) { MyThread thread = new MyThread(); thread.start(); } }
С помощью Runnable:

Код:
 class MyRunnable implements Runnable { public void run() { System.out.println("Это Runnable поток!"); } }

public class Main { public static void main(String[] args) { Thread thread = new Thread(new MyRunnable()); thread.start(); } }
Управление потоками:
Можно управлять состоянием потоков с помощью методов join() и sleep().

Пример с join():

Код:
 public class Main { public static void main(String[] args) throws InterruptedException { Thread thread = new Thread(() -> { System.out.println("Поток работает!"); }); thread.start(); thread.join(); // Ждем, пока поток завершится System.out.println("Поток завершен!"); } }
Использование потоков с ExecutorService:
Для более сложного управления потоками можно использовать ExecutorService. Это позволяет эффективно управлять пулом потоков.

Код:
 import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors;

public class Main { public static void main(String[] args) { ExecutorService executor = Executors.newFixedThreadPool(3); for (int i = 0; i < 5; i++) { final int taskId = i; executor.submit(() -> { System.out.println("Задача " + taskId + " выполняется."); }); } executor.shutdown(); } }
мусор, смех и грех
 
Сверху Снизу