进程,线程,和操作系统的关系

进程是操作系统分配资源的基本单位,包含了程序的内存空间,如Java程序经过编译器编译后由虚拟机加载到内存成为进程。线程是程序执行的最小单位,争夺CPU资源,如Java中的线程由栈空间实现,每个线程拥有独立的栈。进程内可包含多个线程,共享部分资源,线程安全问题在多线程环境中尤为关键。
摘要由CSDN通过智能技术生成

进程(os分配资源的最小单位)

	1.进程是是程序代码,os为程序分配了内存空间,如何分配的可能根据 运行环境的不同有所不同
	2.程序存储在,文件夹里面,进程os加载程序入内存,为其分配内存空间
	3.对于java来说,java源代码会先被编译器编译成class文件(这时,编译器相当于一个进程,os为编译器分配空间)
	但是java代码还不是进程
	4.虚拟器运行 class文件的时候,先类加载,把所有涉及的class文件,不是自己写的就从path路径去找,加载到内存中,
	这时,java程序就是进程了,os为java进程分配空间,类加载器进行类加载过程
	5.然后每个进程都会有至少一个线程,这个线程去 争夺cpu的资源,cpu资源的管理也是os来管理的
	6.你可以认为,进程就是os为这个程序分配的内存空间,而线程才是,cpu要真正的执行这个程序的代码
	7.在java中,每个栈空间是一个线程,这些线程去争夺cpu资源,cpu也只执行这些栈中的代码,栈空间也就是,java虚拟机,为实现线程的 一种解决方式
	8.可以理解为,栈中的代码就是java线程,一个栈一个线程,从这里也可以看出,
	Java线程的空间(栈),也是属于进程的空间(java内内存)结构的一部分
	9.进程有共享资源,和非共享资源(栈,线程)

线程(程序 执行 的最小单位)

	1。线程,cpu执行的最小单位,去争夺cpu资源的最小单位
	2.每个程序,对线程的实现方式是不一样的,例如java,就是用栈空间来实现线程
	而mysql也是有自己实现线程的方式
	3.有的支持多线程,例如java,可以有多个栈
	4.而只有多线程的出现,才会出现 线程安全问题,即对共享资源的读写问题

进程和线程都可以看作是程序的内存空间

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值