1、多线程
1.进程:指在内存中运行的应用程序,每个进程都有一个独立的内存空间,一个应用程序可以同时运行多个进程,进程也是程序的一次执行过程
2.线程:线程是进程中的一个执行单元,负责当前进程中程序的执行,一个进程中至少有一个线程
3.并发:指的是两个或多个事件,在同个时间段内发生
4.并行:指的是两个或多个事件,在同一时刻发生的(同时发生)
2、创建多线程第一种方式:创建一个Thread类的子类
1.java.lang.Thread类,是描述线程的类,我们想要实现多线程,就必须继承Thread类
2.实现步骤
1.创建一个Thread类的子类
2.在Thread类的子类中,重写Thread类中的run方法,设置线程任务(开启线程要做什么)
3.创建一个Thread类的子类对象
4.调用Thread类中的方法start方法,开启新的线程(它会自动执行run方法)
3. Thread类中的常⽤⽅法
1. 获取线程的名称 getName
2. 获取当前线程 Thread.currentThread()
3. 设置线程名称 setName
4. 让程序睡⼀会 sleep(毫秒)
3、创建多线程的第⼆种⽅式 : 实现Runnable接⼝
1. 实现步骤
1. 创建⼀个Runnable接⼝的实现类
2. 在实现类中重写Runnable接⼝中的run⽅法,设置线程任务
3. 创建Runnable接⼝的实现类对象
4. 创建Thread类对象,构造⽅法中传递Runnable接⼝的实现类 对象
5. 调⽤Thread类中的start⽅法,开启新的线程执⾏run⽅法
2. 好处
1. 避免了继承的局限性
2. ⼀个类只能继承⼀个类,类继承了Thread类,就不能再继承别 的类了
3. 实现了Runnable接⼝,还可以继承其他的类,还可以再实现其 他的接⼝
3. 匿名内部类的⽅式 实现创建线程
1. 匿名: 没有名字
2. 内部类: 写在其他类的内部的类
3. 匿名内部的作⽤:简化代码
1. 把⼦类继承⽗类,重写⽗类的⽅法,创建⼦类对象合成⼀步完 成
2. 把实现类实现接⼝,重写接⼝中的⽅法,创建实现类对象合成 ⼀步完成
3. 匿名内部的最终产物: ⼦类或实现类对象,⽽这个对象没有名字
4.线程的状态,查看线程的状态 getState()
1.创建状态New
2.运行状态RUNNABLE
3.终止状态TERMINATED
4.join()等待该线程终止
5. yield() 暂停当前正在执⾏的线程对象,并执⾏其他线程