1. 相关概念:
1.2. 垃圾线程:
如果线程对象被赋值其他线程对象的引用, 则之前的那个线程就是垃圾线程, 一段时间后会被Java回收
2. 线程的目标对象:
即实现了run()方法的对象
3. 线程对象:
即用对象来表示一个线程
3.1. 线程对象中的常用方法与属性:
name属性
为线程对象的名字
start()
⭐ 启动线程, 并运行线程目标对象的run()方法
wait()
方法, 中断当前线程run()方法, 等待别的线程调用notify()
notifyAll()
方法, 通知所有等待中的线程, 使其运行
notify()
方法, 通知指定线程, 使其运行
isAlive()
判断当前线程是否在执行run()方法
sleep(毫秒)
使当前线程睡眠一段时间
线程对象A.interrupt()
叫醒线程对象A的sleep, 使其产生异常InterruptedException
故sleep一般要套一层try-catch
4. Java的多线程机制
Java虚拟机可以快速的轮流执行多个线程
4.1. Java中的主线程:
main方法即为主线程
4.2. 线程的调度与优先级:
Java虚拟器中有线程调度器, 其把线程的优先级分为10个级别, 分别用Thread类中的常量类表示
5. 创建线程
5.1. 法一(不常用): 继承Thread
编写一个继承Thread的子类, 并要重写Thread的run()方法
5.2. 法二(常用): 用Thread类实例化线程对象
直接使用Thread类的构造方法创建一个对象 给构造方法传递一个实现Runnable接口的实例对象, 线程开始时, 会自动调用传入对象中的run()方法
6. Thread线程类
6.1. 类中常用静态方法:
Thread.currentThread() 得到当前所执行的线程对象
7. 线程同步:
使用synchronized关键字修饰是某个方法, 使其在不同线程中保持同步