进程:指在系统中正在运行的一个应用程序;程序一旦运行就是进程;进程——资源分配的最小单位。
线程:系统分配处理器时间资源的基本单元,或者说进程之内独立执行的一个单元执行流。线程——CPU调度的最小单位。
多线程实现:
- 继承Thread
- 实现Runnable
public class DrawThread extends Thread{
//重写run方法
@Override
public void run() {
// TODO Auto-generated method stub
}
}
public class Ball implements Runnable{
@Override
public void run() {
}
}
两者特点:
- 由于Java是单继承,所以继承了Thread之后,就不能继承其他类了
- Runnable是一个接口,实现其之后还可以实现其他接口。
- 都是重写run方法
新建两个线程,那么先写的线程会先实现吗?
测试代码:
public class Output implements Runnable{
@Override
public void run() {
// TODO Auto-generated method stub
for (int i = 0; i < 10; i++) {
System.out.println(Thread.currentThread().getName()+":"+i);
}
}
public static void main(String[] args) {
Output op1 = new Output();
new Thread(op1).start();
Output op2 = new Output();
new Thread(op2).start();
}
}
结果:
结论:不会因为那个线程先写而被先执行
打开电脑的任务管理器,我们会发现电脑实时的进程与线程
CPU是怎样运行这么多的线程?
CPU的执行速度非常快,通过划分时间片段,每个片段执行不同的程序。