Введение в потоки Thread в Java

В чем разница между Reader и InputStream в Java

Процесс представляет собой экземпляр выполняемой компьютерной программы. Процесс может выполняться процессором или набором процессоров. Процесс имеет виртуальное адресное пространство, исполняемый код, открытые дескрипторы системных объектов, контекст безопасности, уникальный идентификатор процесса, переменные среды, класс приоритета, минимальные и максимальные размеры рабочих наборов и, по крайней мере, один поток выполнения.

Поток - это объект внутри процесса, который может быть запланирован для выполнения. Это базовая единица использования ЦП, состоящая из счетчика программ, стека и набора регистров (и идентификатора потока). Все потоки процесса разделяют его виртуальное адресное пространство и системные ресурсы. Нити отличаются от процессов. Поток - это контекст выполнения, тогда как процесс представляет собой совокупность ресурсов, связанных с вычислением. Процесс может иметь один или несколько потоков. Реализация потоков и процессов различается между операционными системами, но в большинстве случаев поток является компонентом процесса.

Java Threads

Поток - это независимый путь выполнения внутри программы. Это означает, что это последовательность инструкций внутри программы, которые могут выполняться независимо от другого кода. Java Threads - относительно легкий способ реализовать несколько путей выполнения внутри приложения. Поток похож на последовательные программы, то есть один поток имеет начало, конец, последовательность и в любой момент времени во время выполнения потока есть одна точка выполнения. Однако сам поток не является программой. Он не может работать сам по себе, но работает внутри программы. Многие потоки могут запускаться одновременно внутри программы. Все Java-программы имеют по крайней мере один поток, известный как основной поток, который создается JVM (виртуальная машина Java) при запуске программы, когда метод main() вызывается с основным потоком. Это объект, который имеет свои собственные регистры, стек и сегмент кода, которые могут работать параллельно с другими потоками процесса (процесс представляет собой набор потоков). Каждый поток в Java создается и контролируется классом Java.lang.Thread. Программа Java может иметь много потоков, и эти потоки могут выполняться одновременно, либо асинхронно, либо синхронно.

Существует два способа создания потока в Java:

  1. Расширение класса Thread
  2. Внедрение интерфейса Runnable

Расширение класса Thread в Java

Вы можете расширить класс Java.lang.Thread, чтобы создать свой собственный класс потока Java и переопределить метод run(). Затем вы можете создать его объект и вызвать метод start() для выполнения нашего пользовательского метода запуска класса потока Java.

Пример

 
public class TestClass extends Thread{
  public void run(){
    System.out.println("Print this.....");
  }
  public static void main(String[] args) {
    TestClass tc = new TestClass();
    tc.start();
  }
}

Внедрение интерфейса Runnable в Java

Вы можете реализовать интерфейс Java.lang.Runnable и обеспечить реализацию в общедоступном методе void run(). Чтобы использовать этот класс как Thread, вам нужно создать объект Thread, передав объект этого класса runnable, а затем вызвать метод start() для выполнения метода run() в отдельном потоке.

Пример

 
public class TestClass implements Runnable{
  public void run(){
    System.out.println("Print this.....");
  }
  public static void main(String[] args) {
    TestClass tc = new TestClass();
    Thread tr = new Thread(tc);
    tr.start();
  }
}

Важно отметить, что когда вы расширяете класс Thread, вы не можете расширять любой другой класс, который вам нужен, потому что Java не разрешает множественное наследование. Когда вы реализуете Runnable, вы можете сохранить пространство для своего класса, чтобы расширить любой другой класс в будущем или сейчас.

Источник: http://net-informations.com/Java/cJava/thread.htm

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector