线程和进程之间的共享资源方式

进程之间的共享资源的方式

1.消息队列
2.共享内存
3.管道(有名管道。无名管道)
4.信号
5.套接字

同一个进程的不同线程之间可以共享的资源

1.堆,由于堆是在进程启动的时候开辟的空间,因此由进程new出来的不同的线程会共享堆空间(16位平台上分全局堆和局部堆,局部堆是独享的)
2.全局变量,全局变量不受具体的函数以及不受具体的线程所拥有,所以全局变量属于共享资源
3.静态变量,在内存中存放在静态存储区,其地位与全局变量是等同的,在堆中开辟,因此其也属于共享资源
4.文件资源,文件资源由系统管理,因此在多线程之间是共享的,但是对于写操作,需要进行不同线程之间的同步,用到的方法包括信号、临界区、事件和互斥,
5.栈;不是线程之间的共享,每个线程有自己独立的栈空间

线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。

线程与进程之间的共享资源相关推荐

  1. 父子进程之间的共享资源

    在现有的Linux内核在实现fork()函数时往往是一种"写时赋值"的情况 父子之间的进程ID是不同的,其余大部分资源都是被复制的 在下面的例子中可以看到,全局变量,局部变量,动态 ...

  2. python进程的注意点(进程之间不共享全局变量、主进程会等待所有的子进程执行结束再结束)

    1. 进程的注意点介绍 进程之间不共享全局变量 主进程会等待所有的子进程执行结束再结束 2. 进程之间不共享全局变量 import multiprocessing import time# 定义全局变 ...

  3. 以爬虫为例,单线程,协程,线程,进程之间性能的比较,原来协程可以这么快?

    前言 因为刚刚学习到了协程,然后之前也对爬虫有一定的了解,所以打算结合之前学的线程和进程,和协程进行对比,看看它的性能到底有多高,在测试完成后,结果还是不错的!下面就直接上代码了,因为代码逻辑都比较简 ...

  4. 1线程概念:线程和进程之间的关系,线程间可共享资源,线程间非共享资源,线程的优缺点

     1线程概念 1.1什么是线程 1.1.2线程和进程的关系 1.轻量级进程(light-weightprocess),也有PCB,创建线程使用底层函数和进程一样,都是clone. 2.从内核里看进 ...

  5. 线程和进程之间的联系----基本概念

    什么是线程? 在回答这个问题之前先得要回答进程, 传统操作系统上进程是 pcb,操作系统通过pcb控制程序运行:但是在 linux 下线程使用 pcb 实现调度,linux下 pcb 是线程,也叫轻量 ...

  6. 线程与进程之间的关系和区别

    线程共享的环境包括:进程代码段,进程的公有数据(利用这些数据,线程很容易实现相互间的通讯),进程打开的文件描述符,信号的处理器进程的当前目录和进程用户ID与进程组ID. 进程拥有这许多共性的同时,还拥 ...

  7. 使用named_mutex实现读写锁,实现进程之间读共享写独占

    代码 代码的名称是read_write_mutex.h 这个代码可用,但是未优化,还存在冗余的代码 如果涉及到进程挂掉了,造成进程堵塞,如何解决?还未涉及 //#ifndef BOOST_THREAD ...

  8. 进程之间通信 共享内存

    命令 ipcs 命令查看共享内存.消息队列.管道等相关信息 ipcs -m 查看共享内存的信息 代码 创建共享内存 共享内存 关联 进程 分离共享内存 删除共享内存 #include <sys/ ...

  9. linux通过管道的进程通信,linux 线程或进程之间通过管道通信(pipe)

    线程间通信: #include // printf #include // exit #include // pipe #include // strlen #include // pthread_c ...

最新文章

  1. 2022-2028年中国特高压电网行业深度调研及投资前景预测报告
  2. c标签判断true false jsp_巧妙使用if(true)以及if(false)语句
  3. .NET 页面间传值的几种方法
  4. 计算机的命令函数,数学建模的常用的命令和基本函数..doc
  5. UA STAT687 线性模型II 最小二乘理论2 约束最小二乘估计
  6. 移动零—leetcode283
  7. 15 FFT及其框图实现
  8. 使用PHP时出现乱码,php出现乱码该怎么解决?
  9. 振作起来– Spring Framework 4.0即将来临!
  10. mysql5.6与mysql5.5不同
  11. 【CodeForces - 574B】Bear and Three Musketeers (枚举边,思维,优秀暴力)
  12. logstash-input-redis源码解析
  13. 解决freeswitch ICE 获取RTP地址时间过长的问题
  14. codeforces 1260 总结
  15. WITH TIES语句(SQL)
  16. 对英文单词的词性标注
  17. tt服务器系统,TT服务器使用手册.doc
  18. 机器学习入门1-译文-机器学习是什么以及它的重要性(machine learning--what it is and why it matters)
  19. 入手佳能24-70mm f/2.8L
  20. comsol学习中心:定义与材料选择

热门文章

  1. 蓝鲸智云部署过程中问题汇总
  2. “直接基于成本法”与“模拟权益法”两种合并报表模式比较与分析:响应新准则
  3. Linux下程序中如何使用mkdir建立文件夹
  4. AMT控制器——基于simulink的AMT自动变速汽车换档智能控制
  5. java获取请求本机ip地址
  6. 流氓迅雷,永别了万恶的迅雷,永别了万恶的迅雷播放组件
  7. jQuery 验证码输入错误后自动刷新验证码 点击验证码图片刷新验证码
  8. 联想依托下一代ThinkAgile可组合云平台实现跨越式发展
  9. 使用Boost::Log记录日志
  10. 【Jenkins】win 10 / win 11:Jenkins 的下载、安装、部署(Jenkins 2.365 基于 Java 17)