初入社会的萌新Java选手---总结Java基础知识3

3.进程和线程

进程: 理解:在多任务系统中,一个运行的程序就代表着一个进程。如Windows系统中的任务管理器中可以查看    的正在运行的软件和系统进程。单个CPU中同一时间只能处理一个进程,但我们所见是同时运行着    多个软件,这是为什么呢?实际情况这是由操纵系统负责对CPU资源停止调度和分配管理的,虽然     单个CPU在某一时刻只能做一件事,但是它以非常小的时间间隔切换来执行多个程序,人用弱眼根 无法察觉CPU在往返交替执行多个程序,所以给人以在同一时刻同时执行多个程序的感觉。如果我 同时打开两个记事本程序A和B,这就是两个不同的进程,A编辑的文稿不会影响到B。因为每一个进 都有独立的代码和数据存储空间,操纵的都是自己空间的数据,所以互不影响。

概念:进程=程序代码段+数据段+ 进程控制块

进程是程序的一次动态执行过程,它对应着从代码加载,执行至执行完毕的一个完整过程,是一个 动态的实体。它有着自己的生命周期,因创建而产生因调度而运行因等待资源或事件而被处 于等待状态因完成任务而退出

进程的基本状态(主要是三种:就绪、运行、阻塞):

初入社会的萌新Java选手---总结Java基础知识3_第1张图片

创建进程:进程在创建时需要申请一个空白PCB,向其中填写控制和管理进程的信息,完成资源分配

就绪状态:进程已经准备好,已经分配到所需资源,主要分配到cpu就能运行

运行状态:进程处于就绪状态被调动后,就处于运行状态

阻塞状态:正在执行的进程由于某些事件(I/O请求、缓存区申请失败)而暂时无法运行,进程受到阻塞。在 满足所需条件前进入就绪状态

退出进程:进程退出,或因为程序运行出错,或因为系统终止程序,无法继续运行。

线程: 理解:在单线程中,当程序启动时,就自动发生了一个线程,这个线程称为主线程。主函数main就是在 这个线程上运行的,然后主函数按照程序代码的调用顺序依次往下执行。在这类情况下,当主函 数调用了子函数,主函数必须等待子函数返回以后才能继承往下执行,不能实现两段代码交替执 行的效果。如果要在一个程序中交替执行多段代码,就需要发生多个线程,并指定每一个线程上 所要运行的程序代码,这就是多线程。在Java中创建多线程有两种方法:继承java.lang.Thread 类和实现Runnable接口,并调用Thread类的start方法来启动线程。 

概念:一个进程可以包含一个或多个线程,一个线程就是进程外部的一条执行线索。

线程与进程一样具有创建、就绪、运行、阻塞、退出五种基本状态。

关于多线程:

什么是多线程:指程序(一个进程)在运行时产生了不只一个线程

如何实现多线程:关于这个多线程我也没用过。。。明天试试,再写


你可能感兴趣的:(初入社会的萌新Java选手---总结Java基础知识3)