进程/线程间同步机制。

转载 2013年12月05日 00:22:01
一、进程/线程间同步机制。 


临界区、互斥区、事件、信号量四种方式 临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件(Event)的区别 




1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。在任意时刻只允许一个线程对共享资源进行访问,如果有多个线程试图访问公共资源,那么在有一个线程进入后,其他试图访问公共资源的线程将被挂起,并一直等到进入临界区的线程离开,临界区在被释放后,其他线程才可以抢占。


2、互斥量:采用互斥对象机制。 只有拥有互斥对象的线程才有访问公共资源的权限,因为互斥对象只有一个,所以能保证公共资源不会同时被多个线程访问。互斥不仅能实现同一应用程序的公共资源安全共享,还能实现不同应用程序的公共资源安全共享 .互斥量比临界区复杂。因为使用互斥不仅仅能够在同一应用程序不同线程中实现资源的安全共享,而且可以在不同应用程序的线程之间实现对资源的安全共享。 


3、信号量:它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目 .信号量对象对线程的同步方式与前面几种方法不同,信号允许多个线程同时使用共享资源,这与操作系统中的PV操作相同。它指出了同时访问共享资源的线程最大数目。它允许多个线程在同一时刻访问同一资源,但是需要限制在同一时刻访问此资源的最大线程数目。


PV操作及信号量的概念都是由荷兰科学家E.W.Dijkstra提出的。信号量S是一个整数,S大于等于零时代表可供并发进程使用的资源实体数,但S小于零时则表示正在等待使用共享资源的进程数。    P操作申请资源:   (1)S减1;   
(2)若S减1后仍大于等于零,则进程继续执行;   
(3)若S减1后小于零,则该进程被阻塞后进入与该信号相对应的队列中,然后转入进程调度。      
V操作 释放资源:   
(1)S加1;   
(2)若相加结果大于零,则进程继续执行;   
(3)若相加结果小于等于零,则从该信号的等待队列中唤醒一个等待进程,然后再返回原进程继续执行或转入进程调度。 


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


http://blog.sina.com.cn/s/blog_5e3604840100ddgm.html

相关文章推荐

线程间同步机制----信号

线程拥有与信号相关的私有数据——线程信号掩码,这就决定了线程在信号操作时具有以下特性: (1)每个线程可以先别的线程发送信号。pthread_kill()函数用来完成这一操作。 (2)每个线程可以...

线程间同步机制----条件变量

一、条件变量基本原理 条件变量是线程可用的另一种同步机制。条件变量给多个线程提供了一个 二、条件变量基本操作 三、条件变量应用实例...

线程间同步机制----读写锁

一、读写锁基本原理 读写锁与互斥锁类似,不过读写锁运行更高的并行。互斥量要么锁住状态,要么就是不加锁状态,而且一次只有一个线程可以对其加锁。读写锁可以有3中状态:读模式下加锁状态,写模式下加锁状态...

线程间同步机制(一)

我们在开发的过程中,经常遇到多个线程访问同一资源的情况,也就是所谓的临界资源。同一个资源对多个线程同时可见,如果均只是读访问,那没毛病,关键是实际生产中读写是一起的。那么问题来了,一个线程在写数据,另...

linux基础——linux线程间通信及同步机制总结

线程间的通信有两种情况: 1、一个进程中的线程与另外一个进程中的线程通信,由于两个线程只能访问自己所属进程的地址空间和资源,故等同于进程间的通信。 2、同一个进程中的两个线程进行通信。本文说的就是...

北京大学操作系统 进程同步机制

  • 2012年04月16日 20:26
  • 3.44MB
  • 下载

Unix/linux进程及线程间同步技术总结【学习总结,请勿吐槽。。。】

为允许在线程或进程间共享数据,同步通常是必须的。常见的同步方式有:互斥锁、条件变量、读写锁、信号量。另外,对于进程间的同步,也可以通过进程间通信的方式进行同步,包括管道(无名管道、有名管道)、信号量、...
  • cjneo
  • cjneo
  • 2015年08月03日 22:58
  • 231

线程间的通信、同步方式与进程间通信方式

线程间的通信、同步方式与进程间通信方式 字数1771 阅读3355 评论0 喜欢6 1、线程间的通信方式 使用全局变量 主要由于多个线程可能更改全局变量,因此全局变量最好声明为...

进程间通信 和 线程间同步

以前经常搞混,所以记录下来。 进程间通信主要是指多个进程间的数据交互。 而进程/线程间同步主要指维护多个进程/线程之间数据准确、一致性。 一.进程间通信主要有以下几种方式: 管道(pipe):...

Linux进程间通信与线程间同步详解(全面详细)

引用:http://community.csdn.net/Expert/TopicView3.asp?id=4374496 linux下进程间通信的几种主要手段简介:    1. 管道(Pip...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:进程/线程间同步机制。
举报原因:
原因补充:

(最多只允许输入30个字)