多线程
Java 的多线程就是一个类,这个类可以对它的线程进行控制;
作用:
- 多线程比多进程具有绝对优势
- 提高处理机与设备的平行性
- 可提高资源的利用率与进程推进速度
怎么写一个多线程
- 方法1:构建
Thread
子类对象
基础Thread类后,重写他的run
方法
运行该线程的方法就是先引入其对象,在调用其中的start()
方法
public class Example extends Thread {
run() {
for(int i=0;i<6;i++) {
System.out.println(i+" ");
}
}
}
public class Main {
public static void main(String[] args) {
Example e = new Example();
e.start();
}
}
- 方法2:实现
Runnable
接口
Runnable
接口只有一个抽象方法:
例子:public abstract void run();
注意:public class Example implements Runnable { run() { for(int i=0;i<6;i++) { System.out.println(i+" "); } } } public class Main { public static void main(String[] args) { Runnable e = new Example(); e.start(); } }
- 当多个线程同时进行时,你无法确保各个线程的先后。所以当以上
Example
同行进行时,打印出来就几乎不可能是多个0~~5;可能先出来几个0,再出来一个1,再出来2或有再打印1,线程的先后是很难控制的。
个0~5;可能先出来几个0,再出来一个1,再出来2或有再打印1,线程的先后是很难控制的。 - 为什么重写
run()
方法但却执行start()
方法,如果你执行run()
方法,那么就没有实现多线程,而是一个单线程而已。具体要去看”线程生命周期与线程状态“
- 当多个线程同时进行时,你无法确保各个线程的先后。所以当以上