博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线程同步的几种方式
阅读量:6841 次
发布时间:2019-06-26

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

线程同步的方式主要有:  临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)。

 

他们的主要区别和特点如下:

1)临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,

                    如果有多个线程试图访问公共资源,那么在有一个线程进入后,其他试图访问公共资源的线程将被挂起,并一直等到进入临界区的线程离开,临界区在被释放后,其他线程才可以抢占。

2)互斥量:采用互斥对象机制。 只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以能保证公共资源不会同时被多个线程访问。

                   互斥不仅能实现同一应用程序的公共资源安全共享,还能实现不同应用程序的公共资源安全共享。

3)信号量:它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目。

4)事 件: 通过通知操作的方式来保持线程的同步,还可以方便实现对多个线程的优先级比较的操作。

转载地址:http://kyzul.baihongyu.com/

你可能感兴趣的文章
LINUX REDHAT第二单元练习题
查看>>
mysql批量写入数据时,注意事项
查看>>
get提交时中文传值乱码的有关问题
查看>>
文件包含漏洞总结
查看>>
vim着色
查看>>
[Python]学习基础篇:字符串的处理
查看>>
CentOS用户及用户组管理
查看>>
big endian与little endian
查看>>
单机服务器已经安装好二进制mysql5.6.20,然后开启mysql多实例
查看>>
loadrunner的atof函数有问题,请大家慎用!!!
查看>>
阿拉伯数字转换成中文大写,中文货币的表达方式 python
查看>>
《统一沟通-微软-实战》-3-部署-Exchange 2010-3-证书-创建-导入-分配
查看>>
SCCM 2012系列之新特性概览一:SCCM 2012安装选项和控制台新界面预览
查看>>
快排算法
查看>>
Find >强大的文本查找
查看>>
JQuery捕获或获取当前click事件的事件对象ID
查看>>
在 Linux 系统中安装Load Generator ,并在windows 调用
查看>>
How to use Ivy to manage your OSGi bundle dependen
查看>>
JSP笔记——1.运行原理
查看>>
推荐一款免费的AD审计工具------Netwrix AD变更通知工具
查看>>