1. 前言
线程与进程的理解详见:https://blog.csdn.net/qq_38969070/article/details/80424079
多线程处理(Multithreaded execution)是Java平台的基本特征:
(1) 每个应用至少有一个线程。
(2) 从程序员的角度来看,你在应用中开始时,应该只有一个线程,
称之为主线程(main thread),该主线程可以创建其他的线程。
使用多线程的好处:在多核处理器上运行更快,效率更高,是Java的生命所在。
"In Java, threads are a fact of life."
2. 创建一个线程的方法:
主要有两种,一是从Thread类中派生出子类(使用较少),
另一种是从Runnable接口构造Thread对象(通常使用)。
(1) 方法一:从Thread类派生
由于Thread类本身即实现了接口Runnable,只是其run方法没有任何功能,
因此我们只需要继承Thread,重写自己的run()方法即可。
实例如下:
public class HelloThread extends Thread {
public void run() {
System.out.println("Hello from a thread");
}
public static void main(String[] args) {
HelloThread p = new HelloThread();
p.start();
}
}
(2) 方法二:提供一个Runnable对象
由于Runnable接口只有一个方法-run(),因此继承该接口,实现run()方法,
再将其作为参数传递给Thread的构造器即可。
实例如下:
public class HelloRunnable implements Runnable{
public void run() {
System.out.println("Hello from a thread!");
}
public static void main(String args[]) {
(new Thread(new HelloRunnable())).start();
}
}
3. 易混淆之处
(1) 对Runnable与Thread应加以区别。
例:理解Runnable和Thread的方法和意义
(2) 不使用start()方法,线程是不能运行的。
例:创建一下三个线程
只有前两个线程会运行,因此只打印前两个字符串。