区分多线程与进程:
- 进程是受OS管理的基本运行单元,也就是“一次程序的执行”;
- 多线程则可以理解成在进程中独立运行的子任务,他们可以同时运行。
使用多线程的优点:
直观地,比如Windows(多任务操作系统)可以最大限度地使用CPU的空闲时间来处理其他任务,CPU在不同的任务之间不停地切换,由于切换的速度很快,我们就觉得这些任务好像是在同时运行。So,使用多线程可以在同一时间内运行更多不同类型的任务。
有一点需要注意的是:
线程被调用的顺序是随机的,与代码顺序无关。
实现多线程编程的方式:
- 继承Thread类
- 实现Runnable接口
public class Thread implements Runnable
Thread类实现了Runnable接口,他们之间具有多态关系,其实,继承Thread类创建新线程时,有不支持多继承的局限(因为Java语言的特点是单根继承),所以为了支持多继承,可以实现Runnable接口,但两种方法没有本质的区别。
Method 1 继承Thread类:
package com.multithread.www;
public class MyThread extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
super.run();
System.out.println("MyThread");
}
}
运行类代码:
package test;
import com.multithread.www.MyThread;
public class Run {
public static void main(String[] args) {
MyThread mythread = new MyThread();
mythread.start();
System.out.println("Finished!");
}
}
运行结果:
运行结果显示:run方法执行较晚,也证实了前面所说的线程被调用的顺序是随机的,与代码顺序无关
接下来展现线程具有的随机性,
package mythread;
public class MyThread extends Thread {
@Override
public void run() {
// TODO Aut