博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++线程同步与互斥总结
阅读量:4624 次
发布时间:2019-06-09

本文共 438 字,大约阅读时间需要 1 分钟。

互斥:当多个线程访问同一个全局变量,或者同一个资源(比如打印机)的时候,需要进行线程间的互斥操作来保证访问的安全性。

临界区、互斥体、事件和信号量都可以实现线程互斥.但如果仅仅需要实现互斥功能,推荐前两种。

两者的区别:
1、临界区只能用于进程内的线程互斥,性能较好。
2、互斥体属于内核对象,可以用于进程间的线程互斥,性能较差。
3、线程在没有正常退出互斥区而意外终结时,互斥体可以复位,但临界区不行.。

线程同步:当有多个线程同时执行时,可能需要线程按照一定的顺序执行,比如:线程A负责将要处理的数据读取到内存中,而线程B

负责分析这些数据,此时,应该是线程A执行完毕再执行线程B才有意义,这个时候就需要进行线程的同步控制。
可以用于线程同步控制的对象:事件和信号量。

两者的区别:

1、都是内核对象,使用完毕后应该关闭句柄。
2、信号量可以用于相当复杂的线程同步控制.。

 

转载于:https://www.cnblogs.com/duxie/p/11141075.html

你可能感兴趣的文章
MVC4 WEBAPI(一)使用概述
查看>>
推荐给非互联网主体的用户
查看>>
sublime3 sftp 忽略文件的写法
查看>>
42. Multiply Strings
查看>>
Socket 基于完整CS样式例子(转载)
查看>>
C++ 概念易错点
查看>>
【顶】在node环境下玩转less
查看>>
图片标签
查看>>
论网站结构(框架篇)
查看>>
oracle常用函数汇总
查看>>
.net下跨Server分布式事务的处理办法TransactionScope (转)
查看>>
LeetCode Fraction to Recurring Decimal
查看>>
知识点篇:8.1)坑爹的面试问题--选定轴孔配合公差等级
查看>>
数位dp
查看>>
输出 Office 报表
查看>>
galera cluster集群的分裂与仲裁机制
查看>>
day19
查看>>
java基础学习总结六(对象与类、类的属性与方法)
查看>>
PAT天梯赛L2-005 集合相似度
查看>>
Exercise 15: Reading Files
查看>>