【学习笔记】二.线程、进程、并发、并行已经线程的生命周期

程序:是为完成特定任务,用某种语言编写的一组指令的集合,即指一段静态的代码。

进程:是程序的一次执行过程,或是正在运行的一个程序,是一个动态的过程,有它自身的产生,存在和消亡的过程-------生命周期。(资源分配的基本单位)
线程:进程可进一步细化为线程,是一个程序内部的一条执行路径。(运行、调度的基本单位)。

在任务管理器的进程栏,各个进程和它们对应的参数在不断变化,表明进程是在计算机内存中动态执行的程序。

线程是进程的进一步细化,一个进程中要同时干几件事时,每一件事的执行路径成为线程。

并发:指的是两件或多件事在同一时间段内发生。就像我做实验的时候,过程中我需要完成许多步骤,制备实验材料的时候需要等待材料完全溶解,这时我会去架设实验台架,架好后继续材料制备,实验开始前我要记录数据,实验结束后等待冷却的过程中我要打扫卫生。在做实验这个时间段内,我就是并发的,处理下事件A,再处理下事件B,事件B需要等待,我又去处理事件C,不同的事件来回交替处理,但每次只能处理一个事件。对应到计算机操作系统,相当于一个CPU处理多个线程。

并行:指的是两件或多件事在同一时刻发生。还是举做实验的例子,这次有师妹帮我,我们两个分配任务,我在制备材料的同时她在搭设台架,我在记录数据的时候她在整理打扫卫生。同一时刻,两个任务是同时发生的。对应到计算机操作系统,相当于多个CPU处理多个线程。

线程的生命周期:线程从创建到死亡的状态变化过程。

线程的运行状态:

创建(New):使用new方法,new出来的线程

就绪(Runnable就是调用的线程的start()方法后,这时候线程处于等待CPU分配资源阶段,谁先抢的CPU资源,谁开始执行

运行(Running):当就绪的线程被调度并获得CPU资源时,便进入运行状态,run方法定义了线程的操作和功能;

阻塞(Blocking):在运行状态的时候,可能因为某些原因导致运行状态的线程变成了阻塞状态,比如sleep()wait()之后线程就处于了阻塞状态,这个时候需要其他机制将处于阻塞状态的线程唤醒。唤醒的线程不会立刻执行run方法,它们要再次等待CPU分配资源进入运行状态

终止(Dead):如果线程正常执行完毕后或线程被提前强制性的终止或出现异常导致结束,那么线程就要被销毁,释放资源

操作系统中,通过一些列方法对线程的生命周期进行控制,如stop()直接让线程终止;sleep()、wait()让线程从运行状态进入到阻塞状态等。

Java的虚拟机中,线程的生命周期有六种状态:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED

新建(NEW):新建一个Thread,此时并不能执行,需要进入就绪状态。

就绪(RUNNABLE):调用了start()方法后,Java虚拟机会为期创建线程栈和程序计数器,完成就绪状态,等待调度运行。

终止(TERMINATED):线程运行完。

半死不死状态(BLOCKED、WAITING、TIMED_WAITING):因为某些原因造成线程暂时没法运行,暂时放弃CPU的使用权,让出时间片,停止运行,直到线程进入到一个就绪的状态后,再次获得CPU的使用权获得时间片,然后继续运行。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值