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

paster
Forever Young
Forever Young
Статус
Оффлайн
Регистрация
11 Июл 2024
Сообщения
240
Реакции
3
Как создавать потоки:
Можно создать поток, расширив класс Thread или реализовав интерфейс Runnable. Вот как это делается:

С помощью Thread:

Код:
Expand Collapse Copy
 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:

Код:
Expand Collapse Copy
 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():

Код:
Expand Collapse Copy
 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. Это позволяет эффективно управлять пулом потоков.

Код:
Expand Collapse Copy
 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(); } }
 
Он в потоке
 
Как создавать потоки:
Можно создать поток, расширив класс Thread или реализовав интерфейс Runnable. Вот как это делается:

С помощью Thread:

Код:
Expand Collapse Copy
 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:

Код:
Expand Collapse Copy
 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():

Код:
Expand Collapse Copy
 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. Это позволяет эффективно управлять пулом потоков.

Код:
Expand Collapse Copy
 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(); } }
мусор, смех и грех
 
Назад
Сверху Снизу