什么是进程
进程是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位。
什么是线程
线程是操作系统进行运算调度的最小单位;
它被包含在进程中,一个进程有一到多个线程;
多个线程共享进程资源
Java中线程的生命周期
线程的五种状态:
1.新建态(New):创建一个线程对象 代码:Thread thread = new Thread();
2.就绪态(Runnable):线程对象调用start()方法 代码:thread.start();
3.运行态(Running):线程获取到CPU,运行run()方法
4.阻塞态(Blocked):正在运行的线程由于特殊情况放弃运行,线程进入阻塞态,要想重新运行,得先进入就绪态
阻塞的三种情形:
(1).等待阻塞:运行状态中的线程执行wait()方法,使本线程进入到等待阻塞状态;
(2).同步阻塞 -- 线程在获取synchronized同步锁失败(因为锁被其它线程所占用),它会进入同步阻塞状态;
(3).其他阻塞 -- 通过调用线程的sleep()或join()或发出了I/O请求时,线程会进入到阻塞状态。当sleep()状态超时、join()等待线程终止或者超时、或者I/O处理完毕时,线程重新转入就绪状态。
5.死亡(Dead):线程运行异常或正常运行结束
线程状态转化图: