- Статус
- Оффлайн
- Регистрация
- 11 Июл 2024
- Сообщения
- 240
- Реакции
- 3
Как создавать потоки:
Можно создать поток, расширив класс Thread или реализовав интерфейс Runnable. Вот как это делается:
С помощью Thread:
С помощью Runnable:
Управление потоками:
Можно управлять состоянием потоков с помощью методов join() и sleep().
Пример с join():
Использование потоков с ExecutorService:
Для более сложного управления потоками можно использовать ExecutorService. Это позволяет эффективно управлять пулом потоков.
Можно создать поток, расширив класс 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(); } }