多线程
多线程
Java是一种多线程编程语言。我们的程序可以通过同时运行两个或多个组件来优化使用可用资源,每个组件处理不同的任务。
你可以将单个应用程序中的特定操作细分为全部并发运行的单个线程。
线程是一个动态执行的过程,它也有一个从出生到死亡的过程。下图显示了一个线程完整的生命周期。

创建线程方法一
Java 提供了两种创建线程的方法。
创建一个线程的第一种方法是创建一个新的类,该类继承 Thread 类,然后创建一个该类的实例。
继承类必须重写 run() 方法,该方法是新线程的入口点。它也必须调用 start() 方法才能执行。
下面是一个例子:
class Loader extends Thread {
public void run() {
System.out.println("Hello Lu");
}
}
class MyJavaClass {
public static void main(String[] args) {
Loader obj = new Loader();
obj.start();
}
}
如你所见,我们的Loader类继承了Thread类,并重写了它的run()方法。
当我们创建obj对象并调用它的start()方法时,run()方法语句在另一个线程上执行。
提示:每个Java线程都被赋予优先级,以帮助操作系统确定线程调度的顺序。优先级范围从1到10,每个线程默认优先级为5,你可以使用setPriority()方法设置线程优先级。
创建线程方法二
创建一个线程的第二种方法是实现Runnable接口。
实现run()方法。然后,创建一个新的Thread对象,将Runnable类传递给它的构造函数,并通过调用start()方法来启动Thread。
下面是一个例子:
class Loader implements Runnable {
public void run() {
System.out.println("Hello Lu");
}
}
class MyJavaClass {
public static void main(String[] args) {
Thread t = new Thread(new Loader());
t.start();
}
}
Thread.sleep()方法将线程暂停指定的时间段。例如,调用Thread.sleep(1000);暂停一秒钟的线程。请记住,Thread.sleep()抛出一个InterruptedException,所以一定要用try/catch块来包围它。
提示:看起来,实现Runnable接口比从Thread类继承复杂一点。但是,实现Runnable接口是启动线程的首选方法,因为它使你可以从另一个类进行继承。