一.概念
1.进程:是一个应用程序,使用系统资源:CPU,内存,是程序的一个动态过程,它指的是从代码加载到执行完毕的一个完成过程
线程:是进程里的一个执行任务,默认情况下,一个进程只有一个线程,称为主线程
2.从操作系统角度分析:进程是操作系统的线程
3.CPU时间片轮转:CPU在同一时间点只能执行一个任务,非常快的轮转.
4.线程的实现方式:
- 1)继承Thread类
- 2)实现Runable接口
5.进程和线程的关系:
- 1)一个进程可以创建若干个线程
- 2)各个线程抢占进程的资源(CPU内存)
- 3)进程之间不共享资源,相互独立
- 4)系统创建进程需要为该进程重新分配系统资源,而创建线程则容易的多,因此使用线程实现多任务并发比多进程的效率高
二.线程的状态(重点!!!)
1、new 新建状态
2、Runnable 可运行状态 start
开始方法 线程只有调用了start()
方法后,才进入可运行状态
3、Running 运行状态 CPU根据自己的轮转原则,自动、随机执行处于可运行状态的线程
4、Blocked 阻塞状态 只有处于Running状态的线程才能进入到阻塞状态
Running wait()等待 Blocked
sync
同步锁
join()
加入
sleep()
休眠
5、Dead 死亡状态 只有Running状态的线程才能进入Dead状态
处于Running状态的线程,如何进入到阻塞Blocked状态?
1、
sleep(睡眠时间,毫秒为单位)
睡眠时间结束后,自动进入到Runnable可运行状态
2、join()
当前线程停止,执行合并过来的线程,当合并过来的线程执行结束后,继续执行之前的线程