1.进程和线程的定义
进程:引用程序的执行实例(一个应用对应一个进程)
线程:CPU调用和分派的基本单元,进程中执行运算的最小单位
2.创建线程的种类
继承java.lang.Thread类
实现java.lang.Runnable接口
3.继承java.lang.Thread类
(1)定义MyThread类继承Thread类
(2)重写run()方法,编写线程执行体
(3)创建线程对象,调用start()方法启动线程
继承java.lang.Thread类
public clss Demo extends thread{
public void run(){
for(int i=0;i<100;i++)
sout(Thread.currentThread().getName()+i) ) }
}
psvm(){
Demo demo=new Demo
demo.start}
循环一百次demo线程。如果我要加一个线程就是Demo demo1=new Demo demo1.start
核心要点:多个线程之间存在交替执行,不是真正的并行;
5.实现runnable接口创建单线程
public class implements Runnable{
public void run(){
for(int i=0;i<100;i++)
{sout(Thread.currentThread.getName()}
}
psvm{Demo.demo=new Demo()
Thread thread=new Thread(demo)
thread.start() }
}
6实现多线程runnable接口创建线程
多线程就是加一个
Thread thread1=new Thread(demo)
thread1.start();
7.线程的状态
1.正常情况下流程:创建状态==》就绪状态==》运行状态==》死亡状态
2.异常情况下流程:创建状态==》就绪状态==》运行状态==》阻塞(休眠)状态==》就绪状态==》运行状态==》死亡状态
8.线程优先级
(1)线程优先级1-10表示,1最低,默认优先级为5;
(2)优先级高的线程获得CPU资源的概率较大;
(3)用thread . setPriority()给线程添加优先级
9.线程休眠
让线程暂时睡眠指定时长,线程进入阻塞状态
Sleep()可以是线程阻塞【休眠】
Thread. sleep(5000) 5000是5s