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

linux的进程和线程

进程

进程,大白话来说其实就是正在运行的程序。
每个进程有自己的id号,别叫进程的标识号(PID),同时还有父进程id号(PPID)。
这里有一些关于进程的命令
在这里插入图片描述
在这里插入图片描述

进程的建立

fork()
建立了子进程,而父进程依旧在运行,直到结束。这个函数会返回两个值,如果进程是在父进程,fork的返回值是子进程的PID,而在子进程之中返回值是0,返回了负值说明创建失败。子进程会继承父进程的内存信息啥的。
vfork()
也会创建一个子进程,但是父进程不会继续 执行了,直到子进程调用了exec或exit函数之后,才能继续,子进程return不能使父进程继续。

进程的终止

第一种:
自己自然结束,return啥的。
第二种:
exit函数和_exit函数
exit(结束时返回的数值)
_exit(结束时返回的数值)
都是终止的函数
第一个会把缓冲区的内容写回文件,而第二个不会
wait(status)
随机等待任意一个子进程结束,然后继续进行下面的内容,staus有下面这些
在这里插入图片描述
waitpid(进程的pid,status,options参数)
options可以网上看看,我们大多数都是WHOHANG
exec族
在这里插入图片描述
exec函数族的作用是运行第一个参数指定的可执行程序。与fork不同,会终止原来进程,fork不会。以后再补充exec函数族。
system(“要执行的linux指令”)
就是执行linux的指令。

孤儿,僵尸和守护进程

孤儿进程,就是没有父进程的的子进程,父进程比子进程先退出了。
僵尸进程,就是没有父进程的的子进程,而子进程进入死循环无法退出,一直在运行。
守护进程,就是即使退出了终端,也在运行。

线程

线程,通常被叫做轻量级的进程,在进程之下,使用进程的空间内存。线程其实是执行一个已经定义好了的函数。

linux下线程编译

gcc -o 文件名 文件名.c -lpthreade

线程的创建

pthread_create(保存线程的地方,保存线程属性的结构指针,函数的指针,传给函数的值)
结构指针可以没有,输入NULL,而函数的指针,这个函数是 void* func(void *arg)这样的格式。
pthread_exit(要传输的值)
用来取消线程

线程的等待

pthread_join(线程的id,用来接收要等待线程返回值的地方);
等待一个线程的结束,并结束他的返回值。

线程的互斥锁

线程有三种锁,快速锁,嵌套锁,检错锁 。
锁用来控制公用资源的访问,实现对公共资源的独占,不让出错,一个个来访问资源。

使用

在这里插入图片描述

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

相关文章:

  • 漏扫常见问题——口令类
  • 广州建设高端网站韶关手机网站建站
  • NetApp存储基本概念科普:物理层到逻辑层
  • 操作系统复习问题总结
  • 笔记(C++篇)—— Day 12(类的默认成员函数)
  • 牛客算法基础noob59 简写单词
  • CSS断点(Breakpoints)介绍(响应式设计中用于定义不同屏幕尺寸下应用不同样式的特定点)Tailwind断点
  • Flink SQL 查询 核心概念与实战指南
  • 建设网站的合同招远网站建设
  • 免费域名的网站有哪些可视化建网站
  • 【Linuxvs code】Xshell远程配置到VS Code环境配置指南
  • 微服务网关深度设计:从Spring Cloud Gateway到Envoy,流量治理与安全认证实战指南
  • 全新体验:利用Istio提升微服务安全与监控
  • Nuitka加快打包速度(ccache)全平台配置——持续更新中
  • 大数据毕业设计选题推荐-基于大数据的全球能源消耗量数据分析与可视化系统-大数据-Spark-Hadoop-Bigdata
  • 机械行业做网站猎头公司找的工作怎么样
  • 04_Numpy结构化数组
  • 深圳市龙华区价格优化网站建设
  • 博客标题:解密 IntelliJ IDEA 调试:当你的 List 不仅仅是 List
  • 12.如何使用 JavaScript 构建便签应用程序 | 入门项目
  • 第四届云计算、大数据应用与软件工程国际学术会议(CBASE 2025)
  • 全栈工程师项目练习记录
  • Vue CLI为何不显示webpack配置
  • 设计模式之策略模式学习
  • 自己做的网站外国人能访问吗广告设计公司有哪些渠道通路
  • 分布式专题——24 Kafka功能扩展
  • 范式革命:RDMA 如何让网络成为 “分布式内存总线”
  • 如何弄公司网站青岛专业网站制作
  • Langchain4j笔记
  • 云计算介绍