Метод start
Метод start класса Thread запускает поток на исполнение. Когда вызывается этот метод, виртуальная машина Java создает новый поток и вызывает в нем метод run. Метод не принимает параметров и не возвращает значения. Важно понимать: метод start не выполняет код метода run в текущем потоке, а именно запускает новый поток исполнения.
Синтаксис
thread.start()
Пример
Давайте создадим поток и запустим его с помощью метода start:
public class Main
{
public static void main(String[] args)
{
Thread thread = new Thread(() -> {
System.out.println("Thread is running");
});
thread.start();
}
}
Результат выполнения кода:
"Thread is running"
Пример
Давайте запустим два потока и посмотрим, как они выполняются параллельно:
public class Main
{
public static void main(String[] args)
{
Thread thread1 = new Thread(() -> {
for (int i = 0; i < 3; i++)
{
System.out.println("Thread 1: " + i);
}
});
Thread thread2 = new Thread(() -> {
for (int i = 0; i < 3; i++)
{
System.out.println("Thread 2: " + i);
}
});
thread1.start();
thread2.start();
}
}
Результат выполнения кода (порядок может отличаться):
"Thread 1: 0"
"Thread 2: 0"
"Thread 1: 1"
"Thread 2: 1"
"Thread 1: 2"
"Thread 2: 2"
Пример
Давайте создадим поток через наследование от класса Thread и запустим его:
public class Main
{
public static void main(String[] args)
{
MyThread thread = new MyThread();
thread.start();
}
}
class MyThread extends Thread
{
@Override
public void run()
{
System.out.println("Custom thread is running");
}
}
Результат выполнения кода:
"Custom thread is running"