当前位置: 首页 > news >正文

网站规划的注意事项做番号网站违法么

网站规划的注意事项,做番号网站违法么,wordpress内容爬取,wordpress布局怎么看Linux第十二讲:线程概念与控制1.什么是线程 -- 感性理解线程2.什么是线程 -- 理性理解线程2.1什么是页表2.1.1页框2.1.2页表2.1.3什么是线程2.1.4两级页表的地址转换2.1.5缺页异常2.1.6线程的优点2.1.7线程的缺点3.Linux进程 VS 线程4.Linux线程控制4.1创建线程4.2L…

Linux第十二讲:线程概念与控制

  • 1.什么是线程 -- 感性理解线程
  • 2.什么是线程 -- 理性理解线程
    • 2.1什么是页表
      • 2.1.1页框
      • 2.1.2页表
      • 2.1.3什么是线程
      • 2.1.4两级页表的地址转换
      • 2.1.5缺页异常
      • 2.1.6线程的优点
      • 2.1.7线程的缺点
  • 3.Linux进程 VS 线程
  • 4.Linux线程控制
    • 4.1创建线程
    • 4.2LWP -- 轻量级进程
    • 4.3pthread库
    • 4.4线程等待
    • 4.5线程终止
    • 4.6多线程的创建
    • 4.7线程ID
    • 4.8通过源码深入理解线程
    • 4.9线程栈
  • 5.线程的封装
    • 5.1传入对象的仿函数实现
  • 6.线性局部存储
    • 6.1线程命名

1.什么是线程 – 感性理解线程

在这里插入图片描述

2.什么是线程 – 理性理解线程

要理解线程,我们首先来了解一下页表

2.1什么是页表

2.1.1页框

在这里插入图片描述

2.1.2页表

页表的本质是一个结构体,一个进程一个页目录表,指向多个页表,页表里面记录了页表项和页内偏移(前20位和后12位),当需要访问物理地址时,需要先拿到虚拟地址,访问页表,实现虚拟地址到物理地址的转化,一个进程中,需要多次访问页表操作,而进行转换的过程,是通过MMU来完成的
二级页表,页目录中有1024个unsigned int类型数据保存地址,每个页表中也是1024个unsigned int类型数据保存地址
在这里插入图片描述
所以说,当我们拿到虚拟地址之后,假如虚拟地址为32位,那么通过前20位可以找到对应的页框,也就是拿到虚拟页号,每个页框是4KB,那么通过页框号*4KB + 页内偏移(低12位),就可以找到内存中的页框的物理地址了,通过内存物理地址,可以计算出磁盘中的地址(磁道等内容),就可以进行操作了

2.1.3什么是线程

在这里插入图片描述

2.1.4两级页表的地址转换

在这里插入图片描述

2.1.5缺页异常

在这里插入图片描述

2.1.6线程的优点

在这里插入图片描述

2.1.7线程的缺点

在这里插入图片描述

3.Linux进程 VS 线程

在这里插入图片描述

4.Linux线程控制

4.1创建线程

在这里插入图片描述

4.2LWP – 轻量级进程

在这里插入图片描述

4.3pthread库

在这里插入图片描述
所以说,任何一门语言,只要是在Linux环境下运行,提供的创建线程的方法的底层都是对Linux提供的创建轻量级进程的方法,也就是pthread库的封装:
在这里插入图片描述

4.4线程等待

线程创建好之后,新进程要被主进程等待,否则就会出现类似僵尸进程的问题,会导致内存泄漏
在这里插入图片描述
在这里插入图片描述
然而,线程的返回值并不可以只是int类型的,可以是多种类型的:
在这里插入图片描述

4.5线程终止

在这里插入图片描述

4.6多线程的创建

之前所学的都是单线程的创建,下面我们来看一下多线程的创建:
在这里插入图片描述

4.7线程ID

在这里插入图片描述
那么线程ID到底是什么呢?:
在这里插入图片描述
在这里插入图片描述

4.8通过源码深入理解线程

在这里插入图片描述

4.9线程栈

Linux下,将线程和进程都统一到了task_struct(名称相同,但是不同的方法创建,创建出的task_struct中的内容不同), 但是对待线程和进程的stack还是有区别的:

1.对于进程来说,通过fork进行创建时,实际上是复制父进程的stack空间地址,然后写时拷贝与动态增长,如果扩充超过上限报段溢出错误。进程栈是唯一可以访问未映射页而不一定发生段错误 – 超出扩容上线才报
2.对于主进程的子线程而言,栈不是向下生长的,而是提前就固定好的,一旦用尽就会报错。在使用pthread_create时,会调用mmap调用为线程分配栈空间。
在这里插入图片描述

线程有自己独立的栈空间,但是同一进程的不同线程,仍然可以访问到不是自己的栈空间,需要注意。

5.线程的封装

假如我们想通过这种方式,直接实现线程的创建、分离、暂停、回收操作,该如何进行封装呢?:
在这里插入图片描述
其实很简单,只需要在类中掉哦应那个函数接口即可:
在这里插入图片描述
但是这里有一个问题:
在这里插入图片描述
pthread_create接口中的传参和函数调用该怎么实现呢?:
在这里插入图片描述

5.1传入对象的仿函数实现

如果我们想让传入的参数是类,该怎么实现:
在这里插入图片描述

6.线性局部存储

还有一个小点我们要了解以下,那就是线性局部存储
在这里插入图片描述

6.1线程命名

在这里插入图片描述

http://www.dtcms.com/a/401917.html

相关文章:

  • 苏州天狮建设监理有限公司网站网站交易平台建设
  • 企业网站建设原则有哪些零售管理系统哪个软件好
  • 高邮做网站免费企业电话名录
  • 东莞建设工程交易中心门户网站嘉兴做网站费用
  • 立邦漆官方网站官网中英文双语网站 滑动切换
  • 电商网站建设策划网站首页一般做多大
  • 网站开发包括网站设计网络网站建设10大指标
  • 个人学做网站山东省住房和城乡建设厅服务网站
  • 做衣服网站的实验感想广州番禺最新通告
  • 福鼎市城市建设监察大队网站北京计算机编程培训学校
  • 网站升级公告模板长沙企业建站按效果付费
  • 网站一级目录网站建设合同书缴纳印花税吗
  • 淄博网站设计策划方案维护设计网站大全国内
  • 商城网站开发案例python在线编程工具
  • 太原网站建设优化百度推广搜索排名
  • 介绍一个地方旅游网站怎么做求职简历模板免费下载
  • 如何做网站怎么赚钱吗龙岗高端网站设计专家
  • 广州网站建设有限公司网站开发都有
  • 如果网站被攻击了专业定制网站建设智能优化
  • 深圳专业做网站建网站价格seo网站建设费用
  • wordpress站点切换为中文淄博网络
  • 做网站为什么每年都要续费网咖活动营销方案
  • 网站建设合同内容与结构rss导入wordpress
  • 创意赣州网站建设福州排名seo公司
  • WordPress网站生成小程序网站的定位与功能
  • 学做网站有前专门做lolh的网站
  • 网站做的最好的公司江阴规划建设局网站
  • 淮安市哪里可以做网站营销策略主要包括哪些
  • 企业网站开发 语言 收录做网站点
  • 无锡网站推广¥做下拉去118cr广东微信网站制作公司