Многопоточность в Java
Многопоточность - это функция Java, которая позволяет одновременное выполнение двух или более частей программы для максимального использования ЦП. Каждая часть такой программы называется потоком. Итак, потоки - это легковесные процессы внутри процесса.
Потоки можно создавать с помощью двух механизмов:
- Расширение класса Thread
- Реализация исполняемого интерфейса
Thread creation by extending the Thread class
We create a class that extends the java.lang.Thread class. This class overrides the run() method available in the Thread class. A thread begins its life inside run() method. We create an object of our new class and call start() method to start the execution of a thread. Start() invokes the run() method on the Thread object.
Java
// Java code for thread creation by extending // the Thread class class MultithreadingDemo extends Thread { public void run() { try { // Displaying the thread that is running System.out.println( "Thread " + Thread.currentThread().getId() + " is running" ); } catch (Exception e) { // Throwing an exception System.out.println( "Exception is caught" ); } } } // Main Class public class Multithread { public static void main(String[] args) { int n = 8 ; // Number of threads for ( int i = 0 ; i < n; i++) { MultithreadingDemo object = new MultithreadingDemo(); object.start(); } } } |
Thread 15 is running Thread 14 is running Thread 16 is running Thread 12 is running Thread 11 is running Thread 13 is running Thread 18 is running Thread 17 is running
Создание потока путем реализации Runnable Interface
Мы создаем новый класс, который реализует интерфейс java.lang.Runnable и переопределяет метод run (). Затем мы создаем экземпляр объекта Thread и вызываем метод start () для этого объекта.
Класс потока против исполняемого интерфейса
- Если мы расширим класс Thread, наш класс не сможет расширять какой-либо другой класс, потому что Java не поддерживает множественное наследование. Но если мы реализуем интерфейс Runnable, наш класс по-прежнему сможет расширять другие базовые классы.
- Мы можем достичь базовой функциональности потока, расширив класс Thread, потому что он предоставляет некоторые встроенные методы, такие как yield (), interrupt () и т. Д., Которые недоступны в интерфейсе Runnable.
- Использование runnable даст вам объект, который можно использовать в нескольких потоках.
Эта статья предоставлена Мехаком Нарангом . Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше
Вниманию читателя! Не переставай учиться сейчас. Ознакомьтесь со всеми важными концепциями Java Foundation и коллекций с помощью курса "Основы Java и Java Collections" по доступной для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .