基本概念:程序、进程、线程



使用多线程的优点

何时需要多线程

多线程的创建,方式一:继承于Thread类

- 创建一个继承于Thread类的子类
- 重写Thread类的run() —> 将此线程执行的操作声明在run()中
- 创建Thread类的子类的对象
- 通过此对象调用start()
例子:遍历100以内的所有的偶数
例子1:
1 | //1. 创建一个继承于Thread类的子类 |
说明:
- Thread.currentThread().getName() 可以获取当前执行的线程名
- 父类不抛异常那子类也不能抛。
Demo:
1 | 练习:创建两个分线程,其中一个线程遍历100以内的偶数,另一个线程遍历100以内的奇数 |
1 | public class ThreadDemo { |
线程的常用方法:
1 | 测试Thread中的常用方法: |
线程的调度:

线程的优先级:

1 | 线程的优先级: |
例子:
1 | class HelloThread extends Thread{ |
趣事:

Idea出错及解决方案:

原因:SDK配置错误
- 可以说JDK是SDK的一个子集,JDK是SDK,但是SDK不单单有JDK。
解决:改为相对应的版本


创建多线程的方式二:实现Runnable接口
1 | 创建多线程的方式二:实现Runnable接口 |
例子1:
1 | //1. 创建一个实现了Runnable接口的类 |
补充:
- 不能将Thread.currentThread().getName()简写为getName(),因为getName()是父类Thread中的方法,此时没有继承父类Thread。
比较创建线程的两种方式。
1 | 比较创建线程的两种方式。 |
补充:线程的分类
