进程间和线程间同步综述
2013-08-08 17:59
204 查看
一 概述:
(1)互斥锁、条件变量和读写锁都是无名的,即它们是基于内存的,能够很容易的在单个进程内的不同线程间共享,进行线程间同步;然而只有它们放在不同进程间共享的内存区中时,它们才可能为这些进程所共享。
(2)Posix信号量有两种形式:有名信号量和基于内存的信号量。有名信号量总能在不同进程间共享(因为它们是用Posix IPC名字标示的);基于内存的信号量必须放在进程间共享内存区中才能实现进程间共享。System V信号量是有名的,能够很容易在不同进程间共享。
(3)自旋锁(spin lock):为多处理器并发而引入的一种锁。若试图获得另一个正在执行线程拥有的锁,则进入循环等待状态,直到该锁被释放为止,由于循环将造成浪费,自旋锁只用于多处理器系统中,并且通常只用在开发人员预测该锁只会短期被持有的时候。由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠非常重要,自旋锁的效率远高于互斥锁。信号量和读写锁适合保持时间较长的情况。
(1)互斥锁、条件变量和读写锁都是无名的,即它们是基于内存的,能够很容易的在单个进程内的不同线程间共享,进行线程间同步;然而只有它们放在不同进程间共享的内存区中时,它们才可能为这些进程所共享。
(2)Posix信号量有两种形式:有名信号量和基于内存的信号量。有名信号量总能在不同进程间共享(因为它们是用Posix IPC名字标示的);基于内存的信号量必须放在进程间共享内存区中才能实现进程间共享。System V信号量是有名的,能够很容易在不同进程间共享。
(3)自旋锁(spin lock):为多处理器并发而引入的一种锁。若试图获得另一个正在执行线程拥有的锁,则进入循环等待状态,直到该锁被释放为止,由于循环将造成浪费,自旋锁只用于多处理器系统中,并且通常只用在开发人员预测该锁只会短期被持有的时候。由于自旋锁使用者一般保持锁时间非常短,因此选择自旋而不是睡眠非常重要,自旋锁的效率远高于互斥锁。信号量和读写锁适合保持时间较长的情况。
相关文章推荐
- (好~)windows下的线程进程同步方法
- 关于linux内核中多进程(线程)间同步和互斥
- 阻塞 非阻塞 同步 异步 线程 进程 任务
- linux内核中多进程(线程)间同步和互斥
- C#与NET实战 第5章 进程、线程与同步 节选
- 线程进程同步(占坑)
- Android进程线程之同步互斥(一)
- linux进程和线程之间通信方法和同步方法总结
- 进程/线程间同步
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- 进程,线程,同步,异步,内存管理小结
- 进程的同步与通信,进程与线程同步的区别,进程与线程通信的区别
- WinCE 进程、线程和内存管理之同步
- 同步异步线程进程的一些思考
- 【pthread系列-1】同步异步线程进程的一些思考
- Python 中的进程、线程、协程、同步、异步、回调
- ios-同步异步、进程和线程
- 【进程线程与同步】5.1 创建和销毁子进程
- 进程与线程,同步与死锁,生产者消费者模式
- Android进程线程之同步互斥(一)