进程: 一个程序执行的标志
线程: 一个程序中有多个独立流程,每一个流程是线程
特点:
- 多个线程同时并发执行
- 继承 Thread 类
a. 定义一个普通类,来继承 Thread
b. 重写 run 方法
c. 创建线程对象
d. 调用 start 方法启动该线程
- 实现 Runnable 接口
a. 定义一个普通类,来实现 Runnable 接口
b. 重写 run 方法
c. 创建对象
d. 把对象转换成 Thread 对象,然后调用 start 方法来启动线程
-
初始状态
-
可运行状态
-
阻塞状态 sleep(long l) join() join(long l)
-
运行状态
-
终止状态
多个线程同时并发执行时,则会产生数据的混乱
解决方案:
-
使用 synchronized 修改方法
-
使用 synchronized 修饰代码块
多个同步锁同时使用时,有可能产生死锁
wait()
notify()
notifyAll()