• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >嵌入式开发 > 如何选择合适的线程同步机制?

如何选择合适的线程同步机制?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-05

佚名通过本文主要向大家介绍了线程同步机制,多线程同步机制,java线程同步机制,java多线程同步机制,windows线程同步机制等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题:如何选择合适的线程同步机制?
描述:

众所周知,实现线程进程同步的机制有:临界区、互斥体、信号量、事件、原子操作、自旋锁。除了临界区只能实现线程内部的互斥访问,其他几种机制都可以实现进程间的互斥和同步。那么他们的优劣势是什么?如何在不同应用场景下选择不同的机制?


解决方案1:

既然你加了一个Linux的标签,那我就假设你专指Linux下的程序。

Linux下没有“临界区/Critical section”和“事件/Event”,所以这两个可以出局了。
原子操作/Atomic operation不能阻塞线程,所以如果你需要让一个线程等待什么东西的时候就不能用,它只适合用来保证数据一致性。
自旋锁/spinlock是一个用忙循环“阻塞”线程的锁,在等待过程中会占用CPU,所以如果你需要让一个线程长时间等待什么东西的时候就不合适,仅适用于“阻塞”是极小概率事件时,因为spinlock不会出让CPU,所以如果条件几乎总是满足,可以减少线程切换,另外它也不能用于进程同步,只适用于同一进程内的线程。
好了,只剩下互斥体了,它能干什么你知道的。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何选择合适的线程同步机制?

相关文章

  • 2017-06-05 在基于WindowsServer的DNS服务器中配置可转发的根域?
  • 2017-06-05 PC与FPGA通过以太网连接
  • 2017-06-05 错误码0x80071126,此文件或目录不是一个重分析点。删除c盘文件时会出现,怎么解决?谢谢各位
  • 2017-06-05 为什么我的系统里的internet信息服务节点里没有ftp这个子节点?该怎么安装呢?请指点。
  • 2017-06-05 lua中脚本之间的调用
  • 2017-06-05 camera驱动求助?重点是支持TVTUNER。
  • 2017-06-05 想在虚拟机安装MACOS,如何找到MACOS的IOS文件?
  • 2017-06-05 WinCE60不能安装pocketSOAParmCAB
  • 2017-06-05 Bios开发高手请进来,本人高薪诚聘兼职
  • 2017-06-05 操作系统开机时间受cpu影响大吗?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 你知道GSP2e/LP-7451吗
    • Altiumdesigner画原理图,总线部分的NetLabel部分出现错误警告。
    • LM358+MOS组成的恒流源让人抓狂
    • PowerPC下位段空间分配方向问题!
    • win7安装vxworkworkbench32
    • AltiumDesigner的原理图库,如何将引脚标号清零
    • winCE怎样支持中文字体
    • UC2625DW的OV-COAST(第23脚)的使用方法
    • 关于步进电机的选型
    • 求助关于虚拟磁盘驱动的问题

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有