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

天津微信网站开发中国中小企业河南网

天津微信网站开发,中国中小企业河南网,做网站都需要买什么问题,网站静态代码检查 站长工具文章目录 #x1f308; 一、线程的概念⭐ 1. 线程是什么⭐ 2. 线程的优点⭐ 3. 线程的缺点⭐ 4. 线程的异常⭐ 5. 线程的用途 #x1f308; 二、进程和线程⭐ 1. 进程和线程的区别⭐ 2. 进程的多线程共享⭐ 3. 进程和线程的关系⭐ 3. 进程和线程的关系 #x1f308; 一、线程… 文章目录 一、线程的概念⭐ 1. 线程是什么⭐ 2. 线程的优点⭐ 3. 线程的缺点⭐ 4. 线程的异常⭐ 5. 线程的用途 二、进程和线程⭐ 1. 进程和线程的区别⭐ 2. 进程的多线程共享⭐ 3. 进程和线程的关系⭐ 3. 进程和线程的关系 一、线程的概念 ⭐ 1. 线程是什么 线程是 CPU 调度的基本单位。 一个程序中的一条执行路线被称作线程 thread确切的说线程是一个进程内部的控制序列。 只要是进程则至少会有一个执行线程。 线程是在进程的内部运行的执行流本质是在进程地址空间内运行。 在 Linux 中没有线程的概念只有轻量级进程其复用了进程 PCB 的结构和调度算法但看到的 PCB 要比传统进程更轻量化。 由于线程的大部分内容和进程类似如果要重新设计线程相关的结构体和调度算法就很不划算。 透过进程虚拟地址空间能够看到进程的大部分资源将进程资源合理分配给每个执行流就形成了线程执行流。 1. 进程的创建与映射 创建进程需要创建进程控制块 task_struct、进程地址空间 mm_struct、页表。虚拟地址 (进程地址空间) 和物理地址之间还要通过页表建立映射。每个进程都拥有独立的地址空间和页表即进程在运行时本身就具有独立性。 2. 线程的创建与映射 如果创建多个 task_struct并让这多个 task_struct 共享进程地址空间和页表这多个 task_struct 就是进程内部的多个执行流即为 “线程”。相比于进程线程的创建成本明显低了很多只需要创建出 task_struct 然后复用进程的地址空间和页表即可。线程在进程内部运行本质就是线程在进程地址空间内运行即进程曾经申请的所有资源几乎都是被所有线程共享的。 3. CPU 无需识别调度的是进程还是线程 CPU 只关心执行流一个进程内至少要有一个执行流且不管进程内有多少个执行流CPU 都是以 task_struct 为单位进行调度。 单执行流被 CPU 调度 多执行流被 CPU 调度 4. Linux 中线程的实现方案 Linux 中并不存在真正的线程只有轻量级进程的概念其复用了进程的数据结构和相关算法。OS 中会存在着大量的进程而一个进程中又存在 1 ~ n 个线程线程的数量肯定是比进程多的。如果 OS 要实现真正的线程就要专门实现线程的结构体、创建线程、终止线程、调度线程等一切与线程有关的算法越复杂越不好。在 Linux 看来进程控制块和线程控制块的相似点有很多没必要专门去为线程设计一套数据结构直接复用进程结构相关算法即可。 ⭐ 2. 线程的优点 创建一个线程的代价比创建一个进程的代价小很多。和进程间的切换相比线程之间的切换需要 OS 做的工作会少很多。线程占用的资源比进程少很多。线程可以充分利用多处理器的可并行数量一般 CPU 是几核的就创建几个线程。在等待慢速 IO 操作的过程中程序还可以执行其他的计算任务。计算密集型应用为了能在多处理器系统上运行会将计算分解到多个线程中实现。IO 密集型应用为了提高性能将 IO 操作重叠线程能同时等待不同的 IO 操作。 ⭐ 3. 线程的缺点 性能损失一个很少被外部事件阻塞的计算密集型线程往往无法与其他线程共享一个处理器。如果计算密集型线程的数量比可用的处理器多那么可能会有较大的性能损失这里的性能损失指的是增加了额外的同步和调度开销而可用的资源不变。健壮性降低编写多线程需要更全面更深入的考虑在一个多线程程序里因时间分配上的细微偏差或者因共享了不该共享的变量而造成不良影响的可能性是很大的换句话说线程之间是缺乏保护的。缺乏访问控制 进程是访问控制的基本粒度在一个线程中调用某些 OS 函数会对整个进程造成影响。编程难度提高编写与调试一个多线程程序比单线程程序困难得多。 ⭐ 4. 线程的异常 线程崩溃会导致进程崩溃单个线程如果出现除零野指针问题导致线程崩溃进程也会随着崩溃。线程异常会导致进程终止线程是进程的执行分支线程出异常就类似进程出异常进而触发信号机制终止进程进程终止该进程内的所有线程也就随即退出。 ⭐ 5. 线程的用途 合理的使用多线程能提高 CPU 密集型程序的执行效率。合理的使用多线程能提高 IO 密集型程序的用户体验。 二、进程和线程 ⭐ 1. 进程和线程的区别 进程是资源分配的基本单位线程是CPU调度的基本单位。线程共享进程的数据但也拥有自己的一部分数据线程 ID、一组寄存器、独立栈结构、errno、信号屏蔽字、调度优先级。 ⭐ 2. 进程的多线程共享 由于使用的是同一个地址空间因此所谓的代码段、数据段都是共享的 如果定义一个函数在各线程中都可以调用。如果定义一个全局变量在各线程中都可以访问到。 线程共享的进程资源和环境 文件描述符表进程打开一个文件后其他线程也能够看到。每种信号的处理方式SIG_IGN、SIG_DFL或者自定义的信号处理函数。当前工作目录。用户 ID 和组 ID。 ⭐ 3. 进程和线程的关系 在接触多线程之前之前所接触的都属于单线程进程。 FL或者自定义的信号处理函数。 当前工作目录。用户 ID 和组 ID。 ⭐ 3. 进程和线程的关系 在接触多线程之前之前所接触的都属于单线程进程。
http://www.dnsts.com.cn/news/231035.html

相关文章:

  • 企业网站模板 演示浙江微信网站建设
  • 贵州做网站的公司有哪些wordpress站长之家
  • 网站开发网站制作报价十堰秦楚网论坛十堰城事
  • 建设网站北京ui培训讲师
  • django做的购物网站杭州app建设
  • 北京网站域名快速备案我国档案网站建设研究论文
  • 佛山新网站建设教程什么是网络营销和技巧
  • 宁波自助建站网站wordpress oss 防盗链
  • 广西智能网站建设制作顺德网站建设渠道
  • 流量查询网站python安卓app开发
  • 网站建设选亿企网络wordpress主题熊掌号
  • 哈尔滨建站人wordpress cms下载
  • 培训网站建设方案模板网页设计字体颜色代码
  • 返利网站开发计划书做微商哪个网站好
  • 如果网站没有做icp备案会被处罚广东莞业工程设计有限公司
  • 网站seo置顶 乐云践新专家安庆经济开发区人才网
  • 陕西网站建设电话国内免费的短视频素材网站
  • 空气源热泵热水器网站建设百度企业邮箱注册申请
  • 网站建设与优化推广方案内容哈尔滨双城区建设局网站
  • 做网站的时候表格怎么去掉容桂微信网站建设
  • 广州注册公司网上申请入口关键词优化排名的步骤
  • 网站升级通知自动跳跃发簪做的比较好的网站
  • 高端网站开放品牌购买网站
  • 做百度网站排怎么开通公众号
  • 仿站网站开发网站建设管理与维护ppt
  • 企业网站建设尚未实现宣传功能哪个网站做汽车保养比较好
  • 网站服务费网络建设会计分录百度地图嵌入wordpress
  • 济阳县做网站公司怎样做废旧网站
  • 中国水电建设集团网站阿里云怎样做商城式网站
  • 网站建设电话销售工作总结平面设计和电子商务哪个好