码迷,mamicode.com
首页 > 编程语言 > 详细

线程同步的几种方式

时间:2017-07-14 23:05:22      阅读:290      评论:0      收藏:0      [点我收藏+]

标签:速度   方便   应用   控制   机制   互斥对象   串行化   其他   str   

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

 

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

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

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

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

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

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

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

线程同步的几种方式

标签:速度   方便   应用   控制   机制   互斥对象   串行化   其他   str   

原文地址:http://www.cnblogs.com/Allen-rg/p/7172970.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!