系统资源是什么,以及线程什么时候不会释放 共享资源

1.系统资源 指 cpu , 文件,网络(网线),键盘…,锁(内存)

2.系统资源都是共享资源,都是分配给继承,对线程来说都是共享资源

3.简单来说,系统资源都是分配给线程的

4.建立起,所有系统资源都是 分配给线程来使用的,观念

5.系统资源既然是线程共享的(即所有线程都在争抢),那什么线程什么时候占用不释放

线程占用 且 不释放共享资源的几种情况

	1.cpu
		1.线程指令是原子性的时候,不释放cpu资源
		2.当线程指令,是 非阻塞IO指令的时候,在 从 内核缓存区得到数据之前,是不会释放
		  cpu资源的

		非阻塞IO指令:
 			当用户线程发起一个read操作后,并不需要等待,而是马上就得到了一个结果。
 			如果结果是一个error时,它就知道数据还没有准备好,于是它可以再次发送read操作。
 			一旦内核中的数据准备好了,并且又再次收到了用户线程的请求,那么它马上就将数据拷贝到了用户线程,然后返回

	2.内存(例如锁,例如java堆数据)
		当线程指令是原子性的时候,不释放内存共享资源
		
	2.其他(基本都是要 开启 io通道的,只要开启io通道,在这个io通道关闭之前,共享资源都不会被释放)
		其他的,例如网线,设备键盘,文件,在他们被这个线程用完之前都不会释放,
		即 IO通道关闭之前,不会释放

原子操作 不会释放,cpu,内存共享数据(例如锁,堆数据),同步锁是共享资源,也是原子操作,所以同步锁不被释放,而执行这段原子操作有时需要拿到这把锁的,所以同步锁锁住的代码,也不会被 重复执行

IO通道关闭,才会释放系统资源

11.网络IO 必定有 2条IO通道,而且一定有 一个发送端,和一个接受端,同时发送端也同时作为接收端,接收端同时作为发送端,系统资源都是 网线接口

12.网络IO 有 2条 IO通道,并且 2条IO通道,各自连着一个网线接口资源,关闭一个IO通道,只会释放一个 网络接口

13.一个 IO通道,只能获得一个 系统资源,例如网络IO通道有2个就有2个网线接口资源

14.关于IO占用系统资源的,系统的资源释放与否,只与 IO通道是否关闭有关系,与 IO指令是否执行完毕没有任何关系

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值