进程:运行在系统当中的任务(一个进程至少有一个线程)
线程:运行在进程当中的任务(线程不能脱离进程)
进程:独立内存地址空间
线程:同进程中线程共享内存地址
继承Thread 类
run()子线程的入口
子线程没结束前,主线程不会结束
优先级(1-10 10最高)的设置,只能让优先级高的 抢到执行CPU的几率越大
setPriority(1-10);
Thread .MAX_PRIORITY最高 Thread.MIN_PRIORITY最小 Thread.NORM_PRIORITY中等
Runnable 线程接口
线程接口 启动线程 同样Thread
Car 继承Thread时通过 car.start()启动线程
当实现runnable接口时(因为是接口,没有start方法) 有两种方法启动线程,通过 Thread th=new Thread(实现了runnable接口类的对象) th.start()启动
另,在构造方法中
public 实现runnable接口类的类名(){
Thread th=new Thread(this)//因为当前类重写了runnable接口的run方法
Th.start();
}
线程的状况
线程有8个状态
4个基本状态(每个线程都必须经历的状态)
a) 新建
b) 就绪
c) 运行
d) 死亡
运行过程当中有4个状态
a) 睡眠sleep(时间一过自己继续执行)
b) 等待 wait(需要唤醒)
c) 挂起 yield(立即让出本次CPU周期 执行权)
d) 堵塞(通过IO 让程序等待)