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

学习嵌入式第二十六天

进程线程

1.进程的概念 
2.进程 和 程序
硬盘中程序 ,加载到内存中,运行起来,就是进程

创建线程 pthread_create   
            posix thread create 
   线程执行 ---体现在线程执行函数 (回调函数)
   线程退出 ---pthread_exit()  
           线程结束方式:
           1.pthread_exit   //pthread_join
           2.从线程执行函数中return  //此时效果等价于pthread_exit 
           3.pthread_cancel  //线程可以被取消 
           4.任何一个线程调用了exit 
             或者 
             主线程 (main函数) return 
            都会造成 进程结束  
   线程资源回收 ---pthread_join
   
   
    int pthread_cancel(pthread_t thread);
    功能:
        发送 取消的请求 
    参数:
        thread   //表示要发送的线程的tid号 
    返回值:
        成功 0
        失败 错误码 
        
        

   线程资源回收 
   1.pthread_join    //需要自己回收  ---线程的属性 (可结合性)  --- 一般是子线程 在较短时间内运行完 
   2.pthread_detach  //可分离属性    ---子线程运行很久才结束 ---  设置分离属性 
  
  
  函数:
     pthread_detach(); 
     
    int pthread_detach(pthread_t thread);
    功能:
         分离线程 
    参数:
        thread 要分离的线程的tid
    返回值:
          成功 0
        失败 错误码 
1.创建 -- pthread_create 
2.执行 -- 线程执行函数 
3.退出 -- pthread_exit 
          return  //线程执行函数中 
          pthread_cancel 
          exit() //return 从main   
4.资源回收 
       可结合性 --- pthread_join    //这种用于 ,线程任务较短,主线程需要关心子线程状态 
       可分离性 --- pthread_detach  //子程序执行任务较长,主线程也不需要关心子线程状态 

各自特点 (优缺点)

 1.创建 和 调度
  线程 
      创建速度快 
      调度速度快 
      
      //并发程度 更高 
      
 2. 安全性 
    
    线程 
        好处:
        共享了进程的数据空间 
        共享数据方面 方便 
        缺点:
          安全性不好,带来资源竞争 
        进程空间相互独立 
        好处,
            安全性好 
        缺点:
            进程间共享数据不方便  进程间通信   (管道,信号,共享内存)
在C语言中,互斥锁是一种同步机制,用于防止多个任务(线程或进程)同时访问共享资源,从而避免数据竞争和一致性问题。互斥锁在多线程环境中非常重要,因为它们确保在任意时刻只有一个线程可以访问特定的代码段或数据。

定义互斥锁:
    pthread_mutex_t   mutex;
    互斥锁类型        互斥锁变量 内核对象 
    
   初始化锁
    pthread_mutex_init(); //初始化一把锁    
    
   
   加锁                      //加锁 加在 要访问临界资源的地方 
       pthread_mutex_lock(); //上锁 
   解锁 
       pthread_mutex_unlock(); //解锁  临界资源访问之后就解开
   销毁
       pthread_mutex_destroy();//销毁一把锁 
在C语言中,死锁是一种特定类型的进程同步问题,当两个或多个进程在执行过程中因争夺资源而造成的一种僵局。在这种僵局中,每个进程都在等待其他进程释放资源,而如果这些资源都已被其他进程占有,那么没有一个进程能够向前推进,这就形成了死锁。

死锁通常涉及以下四个必要条件,这四个条件必须同时满足才可能导致死锁:

  1. 互斥条件:资源不能被多个进程共享,一次只能由一个进程使用。
  2. 占有和等待条件:进程至少持有一个资源,并且正在等待获取其他进程持有的资源。
  3. 不可剥夺条件:已经分配给一个进程的资源,在未使用完之前不能被强行夺走,只能由该进程自己释放。
  4. 循环等待条件:存在一种进程资源的循环等待关系,即进程间形成了一个闭环,每个进程都在等待下一个进程所占有的资源。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 财务会计与管理会计(七)
  • redis面试(十三)公平锁排队代码剖析
  • 私域场景中的数字化营销秘诀
  • 欧拉角(Euler angles)详解
  • NVIDIA Isaac Lab 入门教程(一)
  • 几种防止Spring Boot 程序崩溃的方法
  • mfc140u.dll丢失错误解决方法的基本思路——四种修复mfc140u.dll的方法
  • go-zero中间件的使用
  • C++ //练习 16.55 如果我们的可变参数版本print的定义之后声明非可变参数版本,解释可变参数的版本会如何执行。
  • Java 集成测试详解及示例
  • ubuntu:最新安装使用docker
  • Linux 内核中的并发与竞争
  • 机器人等方向学习和研究的目标
  • Ciallo~(∠・ω・ )⌒☆第十九篇 mysql windows、Ubuntu安装与远程连接配置
  • 机器学习入门(六):分类模型评估方法
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Swift 中的尾递归和蹦床
  • ⭐ Unity 开发bug —— 打包后shader失效或者bug (我这里用Shader做两张图片的合并发现了问题)
  • 百度地图API标注+时间轴组件
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 聊聊redis的数据结构的应用
  • 如何在GitHub上创建个人博客
  • 深度解析利用ES6进行Promise封装总结
  • 算法系列——算法入门之递归分而治之思想的实现
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 用quicker-worker.js轻松跑一个大数据遍历
  • 运行时添加log4j2的appender
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • !!java web学习笔记(一到五)
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (libusb) usb口自动刷新
  • (NSDate) 时间 (time )比较
  • (补)B+树一些思想
  • (免费分享)基于springboot,vue疗养中心管理系统
  • (免费领源码)Python#MySQL图书馆管理系统071718-计算机毕业设计项目选题推荐
  • (三)Honghu Cloud云架构一定时调度平台
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (四)Linux Shell编程——输入输出重定向
  • (算法)Travel Information Center
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)nsfocus-绿盟科技笔试题目
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .NET / MSBuild 扩展编译时什么时候用 BeforeTargets / AfterTargets 什么时候用 DependsOnTargets?
  • .net core 的缓存方案
  • .net 设置默认首页
  • .NET处理HTTP请求
  • /dev/sda2 is mounted; will not make a filesystem here!
  • ?
  • @javax.ws.rs Webservice注解
  • @property括号内属性讲解
  • [.net 面向对象程序设计进阶] (19) 异步(Asynchronous) 使用异步创建快速响应和可伸缩性的应用程序...
  • [2019.3.5]BZOJ1934 [Shoi2007]Vote 善意的投票
  • [BUUCTF]-PWN:wustctf2020_number_game解析(补码,整数漏洞)