news 2026/4/23 16:24:54

多线程基础1

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
多线程基础1

基于进程而来的多线程解决了进程的一些问题,它能够节省频繁创建和销毁进程带来的资源消耗。进程是资源分配的基本单位。而线程则是资源调度的基本单位。一个进程可以包含多个线程。它们是如何做到节省的呢?:在原来,只有一个进程的时候,当执行完一个任务后,进程就会销毁,而要执行新的任务时就要重新创建。而有线程之后,进程就负责创建一个进程,然后再进行资源分配,线程则负责进行调度执行,这样任务结束后,就不必要销毁进程,而是销毁对应线程,再次创建线程时也不必要再次创建新的进程,(进程会在创建的时候加载所需数据和指令,后来创建的线程则是调用这些)节省了不小的开支。

同一个进程中的线程可能会对其他线程造成影响,其中一个出现异常,(就可能导致其中的内存空间,文件描述符受影响,而进程中的这些是共享的,不同的进程之间这些资源则相互独立)就可能影响到其他的线程,从而导致进程异常终止

下面是总结:

1:进程是包含线程的,进程是资源分配的基本单位,线程是调度执行的基本单位。

2:每个线程是一个独立的执行流,并且单独的参与到cpu调度中(状态,上下文,记账信息,每个都有自己一份)。

3:每个进程,有自己的资源,进程中的线程共用这一份资源(内存空间和文件描述符)。

4:进程和进程之间不会相互影响和,如果一个进程的某个线程,抛出异常,可能会影响到其他线程,从而使进程中的其他线程都异常终止。

5:同一个进程的线程之间可能会互相干扰,引起线程安全问题。

6:线程并不是越多越好,要能合适,如果太多,调度开销就很明显。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 14:38:54

自学嵌入式day30,回收进程

父子进程关系与进程终止机制父子进程内存管理 子进程通过fork()创建时,初始阶段完全共享父进程的内存空间(采用写时复制技术)。只有当父子进程尝试修改同一内存区域时,内核才会为子进程分配独立的内存副本。这种机制优化了资源使用…

作者头像 李华
网站建设 2026/4/23 14:37:59

10394_基于Springboot的社区生活事务管理系统

1、项目包含项目源码、项目文档、数据库脚本、软件工具等资料;带你从零开始部署运行本套系统。2、项目介绍随着城市化进程的加快,物业管理作为城市社区管理的重要组成部分,其信息化、智能化水平的提升显得尤为重要。本文旨在设计并实现一个基…

作者头像 李华
网站建设 2026/4/23 13:36:54

1112 Stucked Keyboard

#include<iostream> #include<map> #include<set> #include<string> using namespace std; bool sureNobroken[256]; int main(){int k,cnt1;cin>>k;//字符出现次数的阈值string s;cin>>s;map<char,bool>m;//记录是否为坏键set<c…

作者头像 李华