进程
什么是进程:
进程是具有独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的独立单位。进程是可与其他程序并发执行的程序,在一个数据集合上的运行过程。他是系统进行资源分配和调度的一个独立单位。
进程的几个概念
1结构特性
为了控制和管理进程,系统为每个进程设立一个**进程控制块\PCB
2动态性
进程的实质是程序的一次执行过程,进程是动态产生,动态消亡的,进程在其生命周期内,在三种基本状态(产生,执行,消亡)之间转换。
3异步性
由于进程间得相互制约,使进程具有执行得间断性,即进程按各自独立的,不可预知的速度向前推进
4并发性
任何进程都可以同其他进程一起向前推进。
5独立性
进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位
线程
将进程分解为几个子任务(线程)
线程的定义
1. 线程是程序执行的**最小单位\,而进程是操作系统分配资源的最小单位;
2. 一个进程由一个或多个线程组成,线程是一个进程中代码的**不同执行路线\;
3. 进程之间相互独立,但同一进程下的**各个线程之间共享程序的内存空间(包括代码段,数据集,堆
等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其他进程不可见;
4. 调度和切换:线程上下文切换比进程**上下文切换要快得
并发和并行
并发;一个CPU,不是同时进行
并行;多个CPU,互相不干扰
线程和进程的区别
线程的切换方式
线程生命周期
线程创建
1继承Thread类
程序运行结果:
2实现Runnable接口
3 实现Callable接口
程序运行结果:
线程就绪
线程运行
一旦CPU分配了运行时间,就调用线程的run()方法
4线程阻塞(block)
(1) sleep(n)---申请运行(就绪)
(2) join()----加入
(3) yield()---放弃cpu时间片,重新竞争
(4) wait()---
5线程死亡
线程自然死亡
守护线程和用户线程
守护最后一个用户线程结束
用户线程
创建的线程
守护线程
线程三大特性
1原子性
即一个操作或多个操作妖魔全部执行并且执行过程中不被任何因素打断,要么就不执行。
2可见性
多个线程访问同一变量,一个线程修改后,其他线程立刻可见。
3有序性
有序性是指程序在执行的时候,程序的代码执行顺序和语句的顺序是一致的